Laravel 如何查询JSON类型字段products_applicable为NULL的记录
Laravel查询JSON类型字段值为null的记录实现
要获取Coupon模型关联表中products_applicable JSON字段值为null的全部记录,可根据字段实际的存储逻辑选择对应查询代码:
- 如果数据库中该字段存储的是原生列NULL值,直接使用空值判断构造查询即可:
Coupon::whereNull('products_applicable')->get();
- 如果数据库中该字段存储的是JSON序列化后的null值(即经过
json_encode(null)操作存入、非数据库原生NULL列值),需要通过数据库原生JSON类型判断实现匹配:
Coupon::whereRaw("JSON_TYPE(products_applicable) = 'NULL'")->get();
说明:你之前使用的
whereJsonContains('products_applicable',['1'])是用于匹配JSON数组字段中包含指定元素的查询逻辑,和查询字段整体为null的场景不通用,不需要复用该查询方法。
内容的提问来源于stack exchange,提问作者user15240617
相关产品推荐
相关产品推荐

