Laravel Eloquent(where 子句)

Hos*_*uhi 2 php laravel eloquent

laravel eloquent 中 '<>' 和 '!=' 有什么区别?

->where("payed",'<>',2)
Run Code Online (Sandbox Code Playgroud)

这给了我空数组,但是当我尝试以下操作时:

->where(function ($query){
    $query->where('payed','!=',2)
        ->orWhere('payed',null);
})
Run Code Online (Sandbox Code Playgroud)

有用

->where("payed",'<>',2)
Run Code Online (Sandbox Code Playgroud)

Abd*_*lam 5

这在 SQL 方面'<>''!='不等于”的。

但区别在于结果

  1. 在 中->where("payed",'<>',2),您要检查'payed'不等于 2 的记录。如果'payed' 为 null,则不会返回,因为 null 不与 2 进行比较。

  2. 在第二个查询中,您要检查'payed'不等于 2 或'payed'为 null 的记录。这意味着它包括null 的记录'payed'


因此,如果您想在第一个查询中包含null值,则必须使用

->where('payed', '<>', 2)->orWhereNull('payed')
Run Code Online (Sandbox Code Playgroud)