thinkPHP的查询表达式大揭秘
主要使用where(条件表达式)方法
语法一:where('字段','条件','值');
等于:EQ 解析为"="
不等于:NEQ 解析为"<>"
小于:LT 解析为"<"
小于等于: ELT 解析为"<="
大于:GT 解析为">"
大于等于:EGT 解析为">="
区间:BETWEEN 解析为 “BETWEEN * AND *”
不在区间:NOTBETWEEN 解析为 “NOTBETWEEN * AND *”
集合:IN 解析为 IN(*,*);
不在集合 : NOT IN 解析为 NOT IN(*,*)
字段值为NULL 和 NOT NULL
//条件省略,默认为相等
$res=Db::table('data')->where('id',11) //等价于:where('id','=',11)
->fetchSql(true) //输出SQL语句,
->select();
//完整的单值条件表达式
$res=Db::table('data')->where('id','EGT',11) //等价于: where('id','>=',11)
->fetchSql(true)
->select();
//区间条件表达式
$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();
//集合条件表达式
$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值判断,注意中间有“=”号的区别
$res=Db::table('Data')->where('node_name','NULL') //找出该字段默认设置为NULL的数据
->where('node_name','=','NULL') //找出改字段等于NULL字符串的数据
->fetchSql(true) //打印SQL
->select();
//like 或者 not like
$res=Db::table('Data')->where('name','LIKE','%php') //模糊匹配以php结尾的字段
->where('name','NOT LIKE','%php')
->where('node_name','=','NULL') //node_name的值为NULL
->fetchSql(true)
->select();
每个数组元素都是一个查询条件,使用where()方法时,每个条件之间为AND关系,使用whereOr()方法为or
//AND