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

posted @ 2020-09-19 10:16  makalo  阅读(2344)  评论(0编辑  收藏  举报