管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询( R! K3 c5 A- i$ l) i3 ?5 n
表达式 含义
1 @& n: ]' P9 p6 IEQ 等于(=)( `+ p" G- ` o2 |* i
NEQ 不等于(<>): U1 m% r6 B, N* _
GT 大于(>)
) ~& e8 A) A2 p( UEGT 大于等于(>=)/ G2 |% f* N6 n8 n
LT 小于(<)
# |" R' n+ J. G; N; g pELT 小于等于(<=)& I5 K; @" V. b: n7 R, Q
LIKE 模糊查询
* J+ F" i2 h) Q/ g2 R9 p8 |$ h, r[NOT] BETWEEN (不在)区间查询
+ u1 c& m& h' ~* e$ ]4 q[NOT] IN (不在)IN 查询6 x9 L! z/ |. O( ^: o
EXP 表达式查询,支持SQL语法0 c) c& r: k! T! F* _ u s) B% t
, i$ ]: m+ \! f
( z0 v& {* F" c5 q/ J, Q. X) e$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
: @# r) n/ G B3 t( _M("User")->where($where)->select();//查询status为0的记录
/ y$ K& ~8 R* `4 S3 p5 ^ T! Q8 P! }; _+ V ~
3、where方法数组查询例子
4 W+ L3 J4 L* Z& ]& n, C1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
/ Z; L" q. z2 N$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件- `% p% L) G5 J1 H; Q0 X
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录& u3 W" F- l% n6 I" g% r# m k* W
6 G6 x* {2 C9 n- f
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
; @- T/ {3 H6 H2 d" E! I6 `: K$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
4 E5 |2 l" z, H- D. s& PM("User")->where($where)->select();//查询status等于0或者1的记录
. K3 o( Z; s; n3 N$ S- e$ \
( h+ B) G4 S7 {% _0 N$ N3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
: }4 Q3 S& _, `8 A q' v$where['createdate'] = array('EGT',"2016-04-20");" ]1 L- J' p& e5 e! u
$where['status'] = '1';
6 r, ~6 A- H& \& A4 U' K: K$condition['_logic'] = "AND";* c: j; m# p2 q: o9 A( w
$map['_complex']=$where;
/ k Q. P' U7 r, V7 a" _$map['level']='0';% m3 E1 F; v1 |
$map['_logic']='OR'; ?. G5 }" s; \6 ]3 R# ?
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
$ y# x/ G3 J6 e3 w2 D |
|