cncml手绘网

标题: where查询表达式 [打印本页]

作者: admin    时间: 2018-9-14 13:13
标题: where查询表达式
b、表达式查询4 q: q: W/ i  ?' v; i
表达式        含义# a; U% |& W  I5 S: a/ U7 \
EQ        等于(=)
9 `+ z+ _8 x+ o4 J% gNEQ        不等于(<>)7 c% e; [. u; }
GT        大于(>)
4 C6 z! `/ h. U5 c( W+ HEGT        大于等于(>=)
% W. q/ R2 f9 o' A& m, F! L) a/ bLT        小于(<)7 k" F- Q3 P' {
ELT        小于等于(<=)
8 q5 e  A6 e, v4 rLIKE        模糊查询
8 [5 J3 f& z; R& q2 N, [[NOT] BETWEEN        (不在)区间查询( @  p7 E0 s  K5 l
[NOT] IN        (不在)IN 查询4 A4 e% U. H0 f& \& c+ m
EXP        表达式查询,支持SQL语法
" T: V2 n) P2 M& w* p7 L
. y! ]% d  I2 Z$ s5 b
; ~4 k! D8 ~) s- F' M- z$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
! w& O  {: j: S, Y, \% [9 K0 ~M("User")->where($where)->select();//查询status为0的记录
3 `9 P; A- W; @5 V! V4 |* Q- ~
4 a9 M$ R/ n* C& }% B3、where方法数组查询例子1 P1 }+ v$ b8 [' E
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。9 }& }9 N. i1 }1 `
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件9 |- H/ @: f+ s- Y. C3 L- f
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录4 W; Q' u/ \0 g/ ^( f9 P
7 e7 g4 V- S4 ~
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
( f# A* T) R$ b& r/ f3 N$ \$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
9 n: z6 E: k+ M8 cM("User")->where($where)->select();//查询status等于0或者1的记录
! [3 F1 R8 F. y
8 q1 x8 m) Z" O( R3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。" B5 Y5 z) ?/ A. [) H) i$ j
$where['createdate'] = array('EGT',"2016-04-20");9 b3 k+ C" v5 H
$where['status'] = '1';
0 H$ s( H: R1 r6 v* i) k3 f$condition['_logic'] = "AND";% l" u5 m* w+ l+ e
$map['_complex']=$where;
: z/ r) ^$ V2 m+ @# {* F6 N3 O$map['level']='0';: V0 y& f7 E; ]% m) O3 n' n, [* [
$map['_logic']='OR';
6 J3 q$ W7 y' q: a4 NM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
4 _6 m6 i' ^& I7 k* y




欢迎光临 cncml手绘网 (http://bbs.cncml.com/) Powered by Discuz! X3.2