管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询- v; U6 y! ? U/ w! G9 s
表达式 含义
" a' ?& m; ~1 p7 CEQ 等于(=), g" z- k/ N9 A6 w. O" g
NEQ 不等于(<>)# m: h4 f; h! u( ~6 w' e
GT 大于(>)& }' G6 D4 ~( I7 }$ Z/ r' w
EGT 大于等于(>=)
6 D5 V E: T, L k2 f9 zLT 小于(<)
7 W' [1 O2 z5 Q+ rELT 小于等于(<=)' N, F; G0 E" M7 T8 H0 y7 P
LIKE 模糊查询
$ M3 d6 e# P" k |& y9 d[NOT] BETWEEN (不在)区间查询% |5 X; K( V Z( A& n4 L
[NOT] IN (不在)IN 查询
q) ^* e5 {6 e! l4 TEXP 表达式查询,支持SQL语法# x [) Z. B2 y& ~
) u. H0 U3 B/ H. z
3 [. q' k; n: i' t$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
- K4 h7 T' e: i) `& ~M("User")->where($where)->select();//查询status为0的记录2 L3 a7 O8 b/ d1 g: A$ v1 T
5 w+ }, n& g% b8 A3、where方法数组查询例子$ n7 G6 j) |5 L( `
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。8 M( g1 ^+ s( f! w0 C
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件& J# D5 [) z2 x) _6 y4 X
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录1 ^' j9 q) }9 @8 m% V
8 {" M H% s+ }+ Q: Z2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
8 g# C1 _! R7 A9 z2 B8 z9 z* ]0 j$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
$ j& W1 ^4 q; P9 Y% ]+ [, b3 y4 pM("User")->where($where)->select();//查询status等于0或者1的记录
, S, B% Y) w5 r$ r* ~- Q+ n1 [* M# G' S. T
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。2 v1 T5 c, X) V
$where['createdate'] = array('EGT',"2016-04-20");
! F1 F+ q8 {' Y5 K( H$where['status'] = '1';
4 l! L+ J+ i- z: d0 J$condition['_logic'] = "AND";
: y' o# x) a* ^( q. e+ E" i$map['_complex']=$where;! u1 Y) q( k3 g- R5 W3 g# I
$map['level']='0';! C1 V5 F: s/ Z/ M
$map['_logic']='OR';
- K# m. ~% t8 a# W- }' JM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录4 _6 `' K/ b1 s
|
|