前言
参考 ThinkPHP3.2.3完全开发手册: 看云ThinkPHP3.2.3完全开发手册
表达式列表
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式 | 含义 | 协助记忆 |
---|---|---|
EQ | 等于(=) | equal |
NEQ | 不等于(<>) | not equal |
GT | 大于(>) | greater |
EGT | 大于等于(>=) | equal or greater |
LT | 小于(<) | less than |
ELT | 小于等于(<=) | equal or less than |
LIKE | 模糊查询 | |
[NOT] BETWEEN | (不在)区间查询 | |
[NOT] IN | (不在)IN 查询 | |
EXP | 表达式查询,支持SQL语法 | expression |
条件区间查询示例
ThinkPHP支持对某个字段的区间查询,例如:
配合以上表达式查询:
$map['id'] = array(array('gt',1),array('lt',10)) ;
得到的查询条件是: ( id > 1) AND ( id < 10)
$map['id'] = array(array('gt',3),array('lt',10), 'or') ;
得到的查询条件是: ( id > 3) OR ( id < 10)
$map['id'] = array(array('neq',6),array('gt',3),'and');
得到的查询条件是:( id != 6) AND ( id > 3)
$map['id'] = array(array('EXP','is not null'),array('gt',3),'and');
得到的查询条件是:( id is not null) AND ( id > 3)
最后一个可以是AND、 OR或者 XOR运算符也可以使用EXP进行原生SQL编写,如果不写,默认是AND运算。
区间查询的条件可以支持普通查询的所有表达式,也就是说类似LIKE、GT和EXP这样的表达式都可以支持。另外区间查询还可以支持更多的条件,只要是针对一个字段的条件都可以写到一起,例如:
$map['name'] = array(array('like','%a%'), array('like','%b%'), array('like','%c%'), 'ThinkPHP','or');
最后的查询条件是: ( name LIKE '%a%') OR ( name LIKE '%b%') OR ( name LIKE '%c%') OR ( name = 'ThinkPHP')
表达式查询的用法示例
EQ :等于(=)
例如:
$map['id'] = array('eq',100);
和下面的查询等效
$map['id'] = 100;
Q.E.D.