'How to Make Laravel Eloquent "IN" Query?
I want to make query in Laravel Eloquent like here its raw MySQL query
SELECT * from exampleTbl where id in(1,2,3,4)
I have tried this in Laravel Eloquent but it's not working
DB::where("id IN(23,25)")->get()
Solution 1:[1]
Here is how you do in Eloquent
$users = User::whereIn('id', array(1, 2, 3))->get();
And if you are using Query builder then :
$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();
Solution 2:[2]
If you are using Query builder then you may use a blow
DB::table(Newsletter Subscription)
->select('*')
->whereIn('id', $send_users_list)
->get()
If you are working with Eloquent then you can use as below
$sendUsersList = Newsletter Subscription:: select ('*')
->whereIn('id', $send_users_list)
->get();
Solution 3:[3]
Syntax:
$data = Model::whereIn('field_name', [1, 2, 3])->get();
Use for Users Model
$usersList = Users::whereIn('id', [1, 2, 3])->get();
Solution 4:[4]
As @Raheel Answered it will be fine but if you are working with Laravel 6/7
Then use Eloquent whereIn
Query.
Example1:
$users = User::wherein('id',[1,2,3])->get();
Example2:
$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();
Example3:
$ids = [1,2,3];
$users = User::wherein('id',$ids)->get();
Solution 5:[5]
Since Laravel 5.7, there is a method whereIntegerInRaw. The execution time is faster than whereIn.
User::whereIn('id', [1, 2, 3])->get();
User::whereIntegerInRaw('id', [1, 2, 3])->get();
You can see the PR.
Solution 6:[6]
Maybe you wanna use whereRaw($query)
Your Code :
DB::where("id IN(23,25)")->get()
Into :
DB::whereRaw("id IN(23,25)")->get()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Raheel |
Solution 2 | Nikunj K. |
Solution 3 | Md. Saidur Rahman Milon |
Solution 4 | |
Solution 5 | Sachin Kiranti |
Solution 6 | Nsgt |