You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eloquent能否生成WHERE (column_1 OR column_2 IS NOT NULL)?求语句差异原因

如何用Eloquent生成指定WHERE子句及条件差异解释

生成column_1 IS NOT NULL AND column_2 IS NOT NULL的Eloquent写法

直接链式调用两个whereNotNull方法即可,Eloquent默认会用AND连接多个查询条件:

// 简洁写法
YourModel::whereNotNull('column_1')
    ->whereNotNull('column_2')
    ->get();

// 等价的另一种写法
YourModel::where('column_1', '!=', null)
    ->where('column_2', '!=', null)
    ->get();

两个WHERE子句的结果差异

  • column_1 IS NOT NULL AND column_2 IS NOT NULL:只有当column_1和column_2同时不为null时,这条记录才会被筛选出来。结果集里的每一条数据,两个字段都必须有有效值。
  • column_1 IS NOT NULL OR column_2 IS NOT NULL:只要column_1或column_2其中任意一个不为null,记录就会被选中。结果集包含三种情况:仅column_1非空、仅column_2非空、两个字段都非空,范围比AND条件的结果集大得多。

内容的提问来源于stack exchange,提问作者T5k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:22:03