thinkPHP5.0数据查询表达式生成技巧
thinkPHP的查詢表達(dá)式大揭秘
主要使用where(條件表達(dá)式)方法
語法一:where('字段','條件','值');
等于:EQ 解析為"="
不等于:NEQ 解析為"<>"
小于:LT 解析為"<"
小于等于: ELT 解析為"<="
大于:GT 解析為">"
大于等于:EGT 解析為">="
區(qū)間:BETWEEN 解析為 “BETWEEN * AND *”
不在區(qū)間:NOTBETWEEN 解析為 “NOTBETWEEN * AND *”
集合:IN 解析為 IN(*,*);
不在集合 : NOT IN 解析為 NOT IN(*,*)
字段值為NULL 和 NOT NULL??
//條件省略,默認(rèn)為相等
$res=Db::table('data')->where('id',11) //等價(jià)于:where('id','=',11)
? ->fetchSql(true) //輸出SQL語句,
? ->select();
?
//完整的單值條件表達(dá)式
$res=Db::table('data')->where('id','EGT',11)? //等價(jià)于: where('id','>=',11)
->fetchSql(true)
->select();
//區(qū)間條件表達(dá)式
$res=Db::table('data')->where('age','BETWEEN',[18,35]) //between 18 and 35
->where('age','NOT BETWEEN',[18,35]) //not between 18 and 35
->fetchSql(true)
->select();
//集合條件表達(dá)式
$res=Db::table('data')->where('id','IN',[2,3,4])? //in(2,3,4)
->where('id','NOT IN',[2,3,5]) //not in(2,3,5)
->fetchSql(true)
->select();
?
//null值判斷,注意中間有“=”號的區(qū)別
$res=Db::table('Data')->where('node_name','NULL')? //找出該字段默認(rèn)設(shè)置為NULL的數(shù)據(jù)
->where('node_name','=','NULL')? //找出改字段等于NULL字符串的數(shù)據(jù)
->fetchSql(true) //打印SQL
->select();
?
//like 或者 not like
$res=Db::table('Data')->where('name','LIKE','%php')? //模糊匹配以php結(jié)尾的字段
? ?->where('name','NOT LIKE','%php')
->where('node_name','=','NULL') //node_name的值為NULL
->fetchSql(true)
->select();
?
每個(gè)數(shù)組元素都是一個(gè)查詢條件,使用where()方法時(shí),每個(gè)條件之間為AND關(guān)系,使用whereOr()方法為or
//AND
$res=Db::table('Data')->where([ 'id'=>['>',11], 'typeid'=>['BETWEEN',[13,20]] ]) ->fetchSql(true) ->select(); //SQL :select * from `Data` where `id` >11 AND `typeid`? BETWEEN 18 AND 20; //OR $res=Db::table('Data')->whereOr([ 'id'=>['EGT',11], 'age'=>['BETWEEN',[17,20]] ]) ->fetchSql(true) ->select(); //SQL:select * from `Data` where `id` >=11 OR `age` BETWEEN 17 AND 20 //簡單條件 $res=Db::table('Data')->where('id','EXP','>=10') ->select(); SQL : select * from `Data` where (`id`>=10) //復(fù)合條件 $res=Db::table('Data')->where('age','EXP','BETWEEN 20 AND 30') ->where(); SQL: select * from `Data` where (`age` BETWEEN 20 AND 30); $res=Db::table('Data')->where('id','EXP','>=10') ->where('age','>',30) ->whereOr('dept','市場部') ->select(); select * from `Data` where(`id`>=10) AND `age`>30 OR `dept`='市場部';轉(zhuǎn)載于:https://www.cnblogs.com/ymdphp/p/10951469.html
總結(jié)
以上是生活随笔為你收集整理的thinkPHP5.0数据查询表达式生成技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TypeError: rose() ta
- 下一篇: 在Mysql中count(*)、coun