管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
9 y& b. b+ f& D Z: O( X1 e# _3 X表达式 含义
( v% T7 M4 f, w1 h$ q, ~$ L( qEQ 等于(=)
' H; k- }# A) J& DNEQ 不等于(<>)
0 \8 r6 O2 N( d3 w4 M# yGT 大于(>), Y7 ]2 ]# K* t" A- I/ ~
EGT 大于等于(>=)
* [2 a+ M: J! r6 O9 oLT 小于(<)
- d/ ^$ ]$ r- ?# `2 N3 h5 mELT 小于等于(<=)/ D% k Q" K4 y; ?$ z" h* E) b
LIKE 模糊查询
4 O% V7 ~1 ]6 S! X[NOT] BETWEEN (不在)区间查询: s9 f0 X' p" e% A
[NOT] IN (不在)IN 查询
e7 Q' M- @& f+ U8 WEXP 表达式查询,支持SQL语法( g8 W4 F+ h; \" I6 b( ] a/ `
! w( w, `8 U0 X2 S- V1 T: G& n; y5 |, \/ a1 T, t. g2 v
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件- q# i c& i" `( r/ K; Y
M("User")->where($where)->select();//查询status为0的记录
" H0 t% b# }9 j6 r. s% }3 d t. E
1 K& x U/ \& N N( N6 i" {3、where方法数组查询例子
4 s& L% W0 S0 Y+ W1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。/ E' a5 @9 Z$ |! V% D7 n0 I; Q
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
) k4 Y! J2 L5 E' c4 j2 cM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
9 f# U/ D$ V2 G$ _& ~7 }
2 z5 b& h [+ T8 E# W7 a. [2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
7 A! W* Z5 _$ }3 h3 N5 E4 r$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件' v! Q& J* v& C" ^
M("User")->where($where)->select();//查询status等于0或者1的记录3 K* I9 T/ w, y& L" o
/ z! j! v, |' n; q3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
, ]% t! B- U2 w A" N$where['createdate'] = array('EGT',"2016-04-20");
6 y+ B5 J( i0 ?+ U0 Z- I& `$where['status'] = '1';4 ~6 a1 M8 L5 b5 r
$condition['_logic'] = "AND";7 ~: |* P* S/ d W1 u
$map['_complex']=$where;
2 G0 k0 q Q; S! q$map['level']='0';4 [0 r" e4 E: x
$map['_logic']='OR';
4 G3 _: ]- I8 h6 v8 |! WM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录, m8 v; u0 r( l. y
|
|