ThinkPHP5.1關於查詢器查詢條件為[NOT] NULL時的寫法
阿新 • • 發佈:2020-09-19
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