Joh*_*984 2 eloquent laravel-5.3
如何应用Laravel的Eloquent whereIn()以使其包含null?
我试过了:
User::whereIn("column", [null, 1, 2]) -> get();
Run Code Online (Sandbox Code Playgroud)
和
User::whereIn("column", [DB::raw("null"), 1, 2]) -> get();
Run Code Online (Sandbox Code Playgroud)
但两个查询都没有返回结果.
谢谢!
在 where 条件下获取带有 null 和 value 的数据非常棘手。即使您直接使用Where 和OrWhereNotNull 条件,那么对于每一行,您都将获取这两个项目,而忽略其他where 条件(如果应用)。例如,如果您有更多 where 条件,它将屏蔽这些条件,但仍然返回 null 或值项,因为您使用了 orWhere 条件。就像上面评论部分提到的@Angelin Calu 一样。
到目前为止我发现的最好的方法如下。这相当于 where (whereIn OrWhereNotNull)。
User::where(function ($query) {
$query->whereIn('column',[1,2])->orWhereNull('column');
})->get();
Run Code Online (Sandbox Code Playgroud)
我不认为你可以通过null在inMySQL的声明.如果在mysql控制台中运行查询,它将跳过null.
尝试 User::whereNull('column')->orWhereIn('column', array(1, 2))->get();