laravel 中的 WhereColumn 为空

WhereColumn null in laravel

我需要比较 table 中的两列,但如果至少有一个为空,则查询 return 为空。

id 名字 original_price sale_price
1 洗发水 2.30
$this->products = Product::whereColumn('original_price', '!=', 'sale_price')->get();

只需在两列上添加 whereNotNull,如果其中一列为 null 则查询 where 条件将不匹配并且 return 没有记录

 $this->products = Product::whereColumn('original_price', '!=', 'sale_price')
            ->whereNotNull("original_price")
            ->whereNotNull("sale_price")
            ->get()

如果您想要这样的查询 returns 也需要 Null 值,您应该使用 orWhereNull

$this->products = Product::whereColumn('original_price', '!=', 'sale_price')
            ->orWhereNull("original_price")
            ->orWhereNull("sale_price")
            ->get()

顺便说一句:如果两者都为 Null,则字段相等但查询不会为空