Thinkphp中如何表達MYSQL中的某欄位不為空is not null
阿新 • • 發佈:2018-11-22
Thinkphp 的文件經常不夠完整的表達MYSQL的各種組合,很多東西需要被嘗試後才能知道,筆者就遇到過一個問題,MYSQL查詢語句中有個表示式is not null ,在thinkphp中就不能用“=” 或者簡單的eq等來表示。
有一種變相的處理方法就是直接把where中的array引數換成string,即比如我要查詢某表的pic不為空
$data = D('tablename');
$data->where("pic is not null")->select();
而有時候我已經寫了一堆的array引數,實在不願意為了一個欄位改變整體格式,
經過多次測試發現了TP還是支援MYSQL不為空的array編寫方式的,即
$data = D('tablename');
$map = array();
$map['pic'] = array('exp','is not null');
其中的exp表示MYSQL的表示式查詢,支援各種MYSQL語句的新增
該寫法同時支援在update中對欄位進行自動增值
比如
SQL語句
update table set data=data+1;
用THINKPHP可以表達為
$data['data'] = array('exp','data+1'); $table->where(1)->save($data);
原文連結:http://www.thinkphp.cn/code/1693.html