php mysql 字段不为空_Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?...
Thinkphp中查詢復(fù)雜sql查詢表達式,如何表達MYSQL中的某字段不為空is not null?
先上兩種實現(xiàn)方式的實例:
$querys["house_type_image"] = array('NEQ','NULL'); //判斷字段不為空
//$querys["house_type_image"] = array('exp','is not null');//其中的exp表示MYSQL的表達式查詢,支持各種MYSQL語句的添加
-------------------------
Thinkphp中查詢復(fù)雜的情況需要使用查詢表達式,使用格式:
$map['字段名'] = array('表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:
表達式 含義
EQ 等于(=)
NEQ 不等于(<>)
GT 大于(>)
EGT 大于等于(>=)
LT 小于(
ELT 小于等于(<=)
LIKE 模糊查詢
[NOT] BETWEEN (不在)區(qū)間查詢
[NOT] IN (不在)IN 查詢
EXP 表達式查詢,支持SQL語法
示例見Thinkphp的官方文檔。官方文檔中沒有查詢某字段為空的例子,試了試,方法如下
判定不為空:
$cond['pic']=array('NEQ','NULL'); //字段pic不為空
$list=$mod->where($cond)->order('id desc')->select();
判定為空:
$cond['pic']=array('EQ','NULL'); //字段pic為空
官方的文檔中沒有對應(yīng)例子。
Thinkphp中如何表達MYSQL中的某字段不為空is not null?
Thinkphp 的文檔經(jīng)常不夠完整的表達MYSQL的各種組合,很多東西需要被嘗試后才能知道,MYSQL查詢語句中有個表達式is not null ,在thinkphp中就不能用“=” 或者簡單的eq等來表示。
有一種變相的處理方法就是直接把where中的array參數(shù)換成string,即比如我要查詢某表的pic不為空
$data = D('tablename');
$data->where(“pic is not null”)->select();
而有時候我已經(jīng)寫了一堆的array參數(shù),實在不愿意為了一個字段改變整體格式,
經(jīng)過多次測試發(fā)現(xiàn)了TP還是支持MYSQL不為空的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);
//$querys["house_type_image"] = array('exp','is not null');
總結(jié)
以上是生活随笔為你收集整理的php mysql 字段不为空_Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 反射获取对象_使用Java反射
- 下一篇: mysql dns反向解析_Mysql