管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询 F0 \" F3 W+ }0 x5 H. W* t
表达式 含义: s# h- V" u5 t% n1 M) X- |
EQ 等于(=)
/ a( J) Z$ u8 MNEQ 不等于(<>)
+ O. v0 l! |8 U1 Q: rGT 大于(>)* d2 x: J8 l% X
EGT 大于等于(>=)+ ~1 a4 o3 m, O) U2 d! y5 u
LT 小于(<)
" J" K1 ]' ]/ n0 h4 N3 YELT 小于等于(<=)
. j; \4 O/ _' H# q6 }: g, h% O# U; WLIKE 模糊查询9 J1 E( V& Y& t; n
[NOT] BETWEEN (不在)区间查询
8 Y3 J2 ]# N$ u& f |" E[NOT] IN (不在)IN 查询
& ^/ `+ t% n, OEXP 表达式查询,支持SQL语法
1 ?% J7 r7 E! J' j4 Q) p/ B F6 x, n; _2 ]! r' L7 Q
+ n# [0 M4 M1 q2 s! `& [0 z$ l. m
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
0 j+ |8 R. ]$ C4 }. q- h0 l: R$ EM("User")->where($where)->select();//查询status为0的记录
" m5 p3 f8 M, s- A8 M3 k
) E: ^# L+ C8 H& e3 T* s: H4 Y, V2 w3、where方法数组查询例子
( F/ a! A, r6 q) m* B T7 S1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。$ @0 x. u' m C. ? Q, Y9 o# [
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
5 W0 K) [& i. @( v1 t. @M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
+ [$ L* Y1 z. q& ?. r" z5 k! N
, N% X* Y" A( j" s O7 p8 q2、数组查询使用OR查询?比如,查询status等于0或者1的记录。) M }0 m) ?% m; r7 r- U; T
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
8 ~* N. |/ k/ SM("User")->where($where)->select();//查询status等于0或者1的记录
1 K1 z7 t" u A2 g; }4 @+ a3 A% b d; _8 F
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
2 q3 C! Q2 Y2 ?! o$where['createdate'] = array('EGT',"2016-04-20");0 A; a( ?$ V4 Y6 `2 G
$where['status'] = '1';
8 \7 R! r, s e. y$condition['_logic'] = "AND";
* ?6 t6 O! s$ D5 g6 ]' r8 _; n$map['_complex']=$where;
# M0 o `4 q) v$map['level']='0';2 }% s$ F2 U( H! a8 X6 T
$map['_logic']='OR';) i+ L+ T# I: r9 `1 l/ H
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录1 H1 O. V- B, N9 w* J( b& J
|
|