管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询+ U* t) _# C$ h
表达式 含义
8 Q" Q- G& M+ G4 y2 }5 @5 EEQ 等于(=)
7 F8 B( ~) v" O. @! |9 hNEQ 不等于(<>)
0 E8 b/ S; s1 f9 EGT 大于(>)
3 l1 g2 r& m: W* C* YEGT 大于等于(>=)+ g) G( k5 [1 F& k0 v; g* [2 K% @
LT 小于(<)
, C. k+ S( j5 \( bELT 小于等于(<=) @) a1 \8 @; u j+ O; k
LIKE 模糊查询) t/ {; a9 f1 o7 @8 ?' u
[NOT] BETWEEN (不在)区间查询' f0 X; t0 p7 I" F8 B
[NOT] IN (不在)IN 查询
2 m% t7 s! t- Q! k1 F% rEXP 表达式查询,支持SQL语法0 B, o/ n# p' D" b
8 i0 b* T, k) a
$ r1 @5 Y# s! v/ U$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件8 }( [) |* m- [2 {3 S+ X X
M("User")->where($where)->select();//查询status为0的记录4 Z; ]0 }1 y+ i* K8 @1 ^9 R* G/ n- q# w2 L
# r* ^9 @" f) D3、where方法数组查询例子
5 V# \0 |" C$ B W7 _2 Z g" p1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
4 A) }" N4 ^) ?5 e+ X6 e$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件 T+ o `% m- b% R) q% C6 O4 A
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
8 i7 M) S: `1 U5 g- m" K- s1 G7 n D: _& x7 }
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
6 O* E9 j$ ~4 l$ @0 ?7 @$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
5 q/ k8 A( z8 w7 ? r& i. s+ `M("User")->where($where)->select();//查询status等于0或者1的记录
" x5 z' R* V) t' x6 m- g% c4 i% Z0 h1 [5 a5 ~
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
x8 G2 w$ d: e$where['createdate'] = array('EGT',"2016-04-20");0 A0 D2 `& |( |6 L \; `3 [8 F, i
$where['status'] = '1';3 P8 R1 U1 f* p- O
$condition['_logic'] = "AND";$ V) X2 O8 p! R [1 Y2 z4 B
$map['_complex']=$where;& m' u" _# L/ V+ y9 {6 N; X) s
$map['level']='0';
5 \2 v2 L! V/ O, L5 B$map['_logic']='OR';$ R* y9 ?% r6 X
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
, \( o4 s6 U: I5 q8 P: X, Q |
|