如何使拉拉威尔Eloquent";IN”;查询


How to Make Laravel Eloquent "IN" Query?

我想在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();

如果您使用的是Query builder,那么您可以使用blow

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();

自Laravel 5.7以来,有一种方法,其中IntegerInRaw。执行时间比whereIn快。

User::whereIn('id', [1, 2, 3])->get();
User::whereIntegerInRaw('id', [1, 2, 3])->get();

您可以看到PR.

也许你想使用whereRaw($query)

您的代码:

DB::where("id IN(23,25)")->get()

进入:

DB::whereRaw("id IN(23,25)")->get()