管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询) C+ Z i' t, K3 H, `
表达式 含义% L! K% N/ t' X& y5 z3 ]' B
EQ 等于(=)
; S& d- x0 G% O3 |9 ^- L1 h3 CNEQ 不等于(<>)
: [5 P5 I9 I3 W# c5 ~1 q2 E- sGT 大于(>)% m4 h+ [6 G A! Z$ S' v L. H% I3 ]
EGT 大于等于(>=)
9 E4 Q& o. f$ k6 p2 [LT 小于(<)
3 q& V* D& v' I9 C/ f# n2 o UELT 小于等于(<=)
0 \: {: ]4 z9 p5 x z* K, E, jLIKE 模糊查询1 C& H% b4 [: d4 q6 a
[NOT] BETWEEN (不在)区间查询. I3 _" T- r4 c5 X' K
[NOT] IN (不在)IN 查询
9 f' m- I$ B" ~( SEXP 表达式查询,支持SQL语法- R$ D% Q( X' b; R4 Q2 A# u% n0 s
& Q' m$ R3 R. ?& H0 S1 A* ], T; [
9 e! `! H/ g% a/ X- x3 m7 g$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
\/ Y4 y, k' y% k$ J3 \M("User")->where($where)->select();//查询status为0的记录
5 T" u4 g' p( s, e+ }, Q; d7 J5 j% _9 N5 |7 Z
3、where方法数组查询例子
" M# T/ a- p, g" l1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。0 A0 a* d2 ?) r6 j9 I& q: n7 W
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
' F& ^, ]% x/ E5 [M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
( ~ I9 F. A* K) O, p8 y+ i6 g w# T0 L& M) w$ g/ L( P
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
' t2 y: k% _/ [* g+ @$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件( Z/ g2 o' d. [2 s5 a: c5 q( w
M("User")->where($where)->select();//查询status等于0或者1的记录
8 l2 z6 O1 g4 i% [& U8 ~8 S0 v9 S( h. |$ F
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。3 w7 E* c4 ]. c/ a9 x
$where['createdate'] = array('EGT',"2016-04-20");
8 s$ L4 g& M, P4 s& n' ^$where['status'] = '1';/ m; d& ]3 v, L/ [; t e5 f
$condition['_logic'] = "AND";
$ q" N) P( z9 \$map['_complex']=$where;# F: I8 R. j& n, u) e
$map['level']='0';- t4 N) r- M* ^8 T, W2 \; [ ^
$map['_logic']='OR';# U! Z; Z# a, h+ y" h& ]6 A( H
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录6 x! _: H R6 P9 E: z7 o+ B
|
|