管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
. k- U% k0 Y" W$ F9 h/ J/ m$ X, |! g表达式 含义$ k' x% x* M3 y* [6 x5 ?0 k
EQ 等于(=)
% @9 F, m" f) z7 XNEQ 不等于(<>) e7 |+ }7 y' i8 |3 b
GT 大于(>)
3 P6 ^( l9 K! ? r0 a6 W0 a% x; jEGT 大于等于(>=). j* R2 t3 t% p8 H( r9 R' I
LT 小于(<)
/ H: V W0 X( J0 kELT 小于等于(<=)
' A$ s! p) U* _ |# x2 N* k) YLIKE 模糊查询
1 U( h$ L& e( T2 S" y[NOT] BETWEEN (不在)区间查询2 I# c# D3 r5 i3 P! r
[NOT] IN (不在)IN 查询8 {, R. u" t. `( Y H6 f( d6 b
EXP 表达式查询,支持SQL语法& ?& d3 X0 H) F
5 Q2 e; `! j$ m! V
4 y" N% L. {+ e7 @3 Q" j$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
4 a, `( ]7 Y& y+ vM("User")->where($where)->select();//查询status为0的记录
! d+ J t( _/ R5 {9 C, V4 A$ K; C: y1 L% B8 J4 l6 i# G0 k* J
3、where方法数组查询例子5 \* _ ^) v" Q; @5 R% d8 f
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。$ K+ ? A2 W$ D1 ]7 Z W
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件 N& {# G- w( D. d2 e# ]( Z6 |( R0 G
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
9 C8 p( y5 L' b
( ]- j# K. a% j/ d' k) Y2、数组查询使用OR查询?比如,查询status等于0或者1的记录。4 P/ b0 L+ Z5 y. H
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
$ a$ a& Y9 ~# ~$ U9 d( LM("User")->where($where)->select();//查询status等于0或者1的记录% a4 n) L. {. R- x
$ S! ~5 O7 n% B0 b5 Z3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。) ~7 X- T5 s5 K# L
$where['createdate'] = array('EGT',"2016-04-20");2 k- W6 R' M2 v6 U
$where['status'] = '1';. F" D$ G2 `4 \2 C
$condition['_logic'] = "AND";
7 O" k/ N; U: Z+ v9 o' u; k" D$map['_complex']=$where;
& h; O. d0 c* u$map['level']='0';3 a. F1 E& {7 H' y2 h+ O
$map['_logic']='OR';+ {" m9 J! `. `& @/ R
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录* R; O4 T5 G) ~$ z& q1 f
|
|