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
相关产品推荐
相关产品推荐

