管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询0 d/ H8 E* F, K3 J: I0 f+ U" E
表达式 含义
$ i Q7 |& G: Y- S7 f- ^( sEQ 等于(=)
, ]7 k" |) F% m* h' U: I2 d! K# tNEQ 不等于(<>)+ K4 ` I |+ e# ]
GT 大于(>)
# }+ z! x' f% lEGT 大于等于(>=)0 g6 k5 A2 V) q
LT 小于(<)! V# ^8 Z5 K2 T: H( @
ELT 小于等于(<=)2 a1 r! H" t/ h# }# s: }
LIKE 模糊查询
/ {: B% p5 i2 e4 Z4 \. ]1 R[NOT] BETWEEN (不在)区间查询' x. ]- P) y! l, k
[NOT] IN (不在)IN 查询
; ~) g* B: N0 h. a0 l% ^EXP 表达式查询,支持SQL语法
8 f2 A% I* K2 G0 k" S b8 J( `6 ~5 I% z$ n
& D0 j3 L3 Y* Y
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件, s2 c# j* I8 z+ T) G1 w# T
M("User")->where($where)->select();//查询status为0的记录
6 t2 T/ r+ r$ { G7 M; ]" F& g- `. B' J
3、where方法数组查询例子: e! d6 N% E |! I y+ D) F
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。$ r* m- d# o( n$ {
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件$ I" [) a) `8 t9 W- w) M
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录4 G/ a1 @. _- I, a$ z
. S' @+ ^4 j8 D! i: Z" Q
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。1 h- a m4 e8 X/ z/ M
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件" ]. R( ^% Q1 u7 N0 A9 Y
M("User")->where($where)->select();//查询status等于0或者1的记录2 o# t# m5 x" m& m
7 m8 P; z* S" @
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。" E4 ^1 d3 k9 i
$where['createdate'] = array('EGT',"2016-04-20");
2 L$ U6 s( G" [ K( J4 s; f: x$where['status'] = '1';
6 G: u/ j9 Y: x$condition['_logic'] = "AND";
E7 F. e. }! M+ _6 s9 n$map['_complex']=$where;6 @6 f" N/ w0 R' g
$map['level']='0';
* N; n3 @" s9 d$map['_logic']='OR';
4 e! R+ B' ]% ~: qM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录. [% Q6 j6 n, J v" T; j
|
|