ThinkPHP5.1关于查询器查询条件为[NOT] NULL时的写法


thinkphp5.1官方文档已经说明了关于[NOT] NULL的表达式用法,使用如下

->where('字段名','null')//查询为NULL时的条件
->where('字段名','not null')//查询不是NULL时的条件

这种用法在单独语句使用时是没有任何问题的,官方还提供了快捷方法,用以简化查询。

方法 作用
whereNull 查询字段是否为Null
whereNotNull 查询字段是否不为Null

但是,但条件是使用数组表达式封装条件时,以上写法将会 报错 。查询表达式的使用格式:

where('字段名','表达式','查询条件');

例如,封装数组条件:

$map = [];
$map[] = ['name','like','think'];
$map[] = ['status','=',1];

以上写法要追加查询条件为[NOT] NULL的情况下,按照最上面的NULL表达式写法是无法正确组装数组条件的。正确写法如下:

$map[] = ['字段名','null',''];//查询为NULL时的条件
$map[] = ['字段名','not null',''];//查询不是NULL时的条件
或
$where['name'] = ['null', ''];
$where['name'] = ['not null', ''];

以上查询[NOT] NULL的的数组封装条件将被正确执行。

参考:https://blog.csdn.net/weixin_43930641/article/details/105238748


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM