如何使 Laravel Eloquent “IN” 查询?

Posted

技术标签:

【中文标题】如何使 Laravel Eloquent “IN” 查询?【英文标题】:How to Make Laravel Eloquent "IN" Query? 【发布时间】:2015-05-20 20:14:31 【问题描述】:

我想在 Laravel Eloquent 中进行查询,就像这里的原始 mysql 查询一样

SELECT  * from  exampleTbl where id in(1,2,3,4)

我已经在 Laravel Eloquent 中尝试过,但它不起作用

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

【问题讨论】:

【参考方案1】:

这是您在 Eloquent 中的操作方式

$users = User::whereIn('id', array(1, 2, 3))->get();

如果您使用的是查询生成器,那么:

$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();

【讨论】:

【参考方案2】:

如果您使用的是查询生成器,那么您可以使用打击

DB::table(Newsletter Subscription)
->select('*')
->whereIn('id', $send_users_list)
->get()

如果您正在使用 Eloquent,那么您可以使用如下方式

$sendUsersList = Newsletter Subscription:: select ('*')
                ->whereIn('id', $send_users_list)
                ->get();

【讨论】:

【参考方案3】:

语法:

$data = Model::whereIn('field_name', [1, 2, 3])->get();

用于用户模型

$usersList = Users::whereIn('id', [1, 2, 3])->get();

【讨论】:

【参考方案4】:

正如@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();

【讨论】:

【参考方案5】:

也许你想使用whereRaw($query)

您的代码:

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

进入:

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

【讨论】:

以上是关于如何使 Laravel Eloquent “IN” 查询?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent 使查询执行变慢

Laravel Eloquent 版本的“NOT IN”SQL

如何在 Laravel Eloquent 中构建具有多级关系的查询

如何在我的 Eloquent ORM laravel 选择中包含一个过程?

php 在Laravel之外使用Eloquent获取其他PHP应用程序。资料来源:https://www.cloudways.com/blog/eloquent-illuminate-in-php-w

Laravel Eloquent 在子查询中有两个“WHERE NOT IN”