我想在Laravel Eloquent中进行查询,就像这里的原始MySQL查询一样。
SELECT * from exampleTbl where id in(1,2,3,4)
我已经在Laravel Eloquent中尝试过这个,但它没有起作用
DB::where("id IN(23,25)")->get()
这是您在 Eloquent 中的操作方式
$users = User::whereIn('id', array(1, 2, 3))->get();
如果您正在使用查询构建器,则:
$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();
如果您正在使用查询构建器,则可以使用以下方法
DB::table(Newsletter Subscription)
->select('*')
->whereIn('id', $send_users_list)
->get()
如果你正在使用Eloquent,那么可以按照以下方式使用:
$sendUsersList = Newsletter Subscription:: select ('*')
->whereIn('id', $send_users_list)
->get();
语法:
$data = Model::whereIn('field_name', [1, 2, 3])->get();
用于用户模型
$usersList = Users::whereIn('id', [1, 2, 3])->get();
正如 @Raheel 所回答的那样,如果你在使用 Laravel 6/7,则可以使用 Eloquent 的 whereIn
查询。
示例1:
$users = User::wherein('id',[1,2,3])->get();
例子2:
$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();
示例3:
$ids = [1,2,3];
$users = User::wherein('id',$ids)->get();
User::whereIn('id', [1, 2, 3])->get();
User::whereIntegerInRaw('id', [1, 2, 3])->get();
whereRaw($query)
你的代码:DB::where("id IN(23,25)")->get()
转换成:
DB::whereRaw("id IN(23,25)")->get()