如何使 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 版本的“NOT IN”SQL
如何在 Laravel Eloquent 中构建具有多级关系的查询
如何在我的 Eloquent ORM laravel 选择中包含一个过程?
php 在Laravel之外使用Eloquent获取其他PHP应用程序。资料来源:https://www.cloudways.com/blog/eloquent-illuminate-in-php-w