Kyl*_*lie 2 subquery where-in laravel
我试图设计一个查询,但我不知道从哪里开始。
我会写出我希望它如何运行。
Items::whereIn('id',$ids)->orWhereIn('id_2',$ids)->where('type','!=',$type)->get();
Run Code Online (Sandbox Code Playgroud)
这就是我希望它工作的方式,但我知道这行不通,因为它只会忽略 WHERE type=$type 查询,因为 whereIN 已经提取了不符合 Where 查询的记录。
基本上我想要这个的雄辩版本......
"SELECT * FROM items WHERE type!=$type AND (id IN (1,2,3) OR id_2 IN(1,2,3))"
Run Code Online (Sandbox Code Playgroud)
您试图做的是对语句进行分组:https : //laravel.com/docs/5.3/queries#parameter-grouping
您需要做的是使代码如下所示:
Items::where('type', '!=', $type)
->where(function ($query) use ($ids) {
$query->whereIn('id',$ids)
->orWhereIn('id_2',$ids);
})
->get();
Run Code Online (Sandbox Code Playgroud)
这样你就可以将 where in 子句分组。