如何在products表中显示存在有效值的slider字段?
问题
我的products表中有一个slider字段,部分记录该字段有有效值,部分无值。我需要查询出slider字段存在有效值的记录,目前使用的代码如下:
$sliders = Product::query()->whereNotNull('slider')->get();
解决方案
仅用whereNotNull('slider')只能排除slider为NULL的记录,但如果字段值是空字符串或者全空格这类无效值,依然会被查询出来。根据需求,推荐以下几种处理方式:
基础过滤(排除NULL和空字符串)
$sliders = Product::query() ->whereNotNull('slider') ->where('slider', '<>', '') ->get();处理全空格的无效值
如果slider字段可能存在由空格组成的无效值,可以用TRIM函数去除首尾空格后再判断:$sliders = Product::query() ->whereNotNull('slider') ->whereRaw("TRIM(slider) <> ''") ->get();Laravel 9+ 简化写法
Laravel 9及以上版本提供了whereNotBlank方法,可自动过滤NULL、空字符串和全空格的无效值:$sliders = Product::query()->whereNotBlank('slider')->get();
内容的提问来源于stack exchange,提问作者Mahmoud Khosravi
相关产品推荐
相关产品推荐

