1. 程式人生 > 實用技巧 >ThinkPHP5.1關於查詢器查詢條件為[NOT] NULL時的寫法

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