TP运算符
SQL运算符 例子 实际查询条件 eq = $map[‘id’] = array(‘eq’,100); 等效于:$map[‘id’] = 100; neq != $map[‘id’] = array(‘neq’,100); id != 100 gt > $map[‘id’] = array(‘gt’,100); id > 100 egt >= $map[‘id’] = array(‘egt’,100); id >= 100 lt < $map[‘id’] = array(‘lt’,100); id < 100 elt <= $map[‘id’] = array(‘elt’,100); id <= 100 like like $map<‘username’> = array(‘like’,’Admin%’); username like ‘Admin%’ between between and $map[‘id’] = array(‘between’,’1,8′); id BETWEEN 1 AND 8 not between not between and $map[‘id’] = array(‘not between’,’1,8′); id NOT BETWEEN 1 AND 8 in in $map[‘id’] = array(‘in’,’1,5,8′); id in(1,5,8) not in not in $map[‘id’] = array(‘not in’,’1,5,8′); id not in(1,5,8) and(默认) and $map[‘id’] = array(array(‘gt’,1),array(‘lt’,10)); (id > 1) AND (id < 10) or or $map[‘id’] = array(array(‘gt’,3),array(‘lt’,10), ‘or’); (id > 3) OR (id < 10) xor(异或) xor 两个输入中只有一个是true时,结果为true,否则为false,例子略。 1 xor 1 = 0 exp 综合表达式 $map[‘id’] = array(‘exp’,’in(1,3,8)’); $map[‘id’] = array(‘in’,’1,3,8′);
其他查询 1、不同字段的查询条件
$map[‘name|title’] = ‘thinkphp’; 等同于 name= ‘thinkphp’ OR title = ‘thinkphp’
2、不同字段不同的查询条件
$map[‘status&title’] =array(‘1′,’thinkphp’,’_multi’=>true); 等同于 status= 1 AND title = ‘thinkphp’
$map[‘status&score&title’] =array(‘1’,array(‘gt’,’0′),’thinkphp’,’_multi’=>true);等同于 status= 1 AND score >0 AND title = ‘thinkphp’
3、区间查询
$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)
4、模糊查询
$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’)
组合查询
1、字符串模式查询
$map[‘id’] = array(‘neq’,1);
$map[‘name’] = ‘ok’;
$map[‘_string’] = ‘status=1 AND score>10’;等同于 ( `id` != 1 ) AND ( `name` = ‘ok’ ) AND ( status=1 AND score>10 )
2、请求字符串查询方式
$map[‘id’] = array(‘gt’,’100′);
$map[‘_query’] = ‘status=1&score=100&_logic=or’;等同于 `id`>100 AND (`status` = ‘1’ OR `score` = ‘100’)
3、复合查询
$where[‘name’] = array(‘like’, ‘%thinkphp%’);
$where[‘title’] = array(‘like’,’%thinkphp%’);
$where[‘_logic’] = ‘or’;
$map[‘_complex’] = $where;
$map[‘id’] = array(‘gt’,1);等同于 ( id > 1) AND ( ( name like ‘%thinkphp%’) OR ( title like ‘%thinkphp%’) )