管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
( h1 m- y, S; E# A: B2 H表达式 含义
a( w% U& A4 L0 Q2 K: [* X3 ]$ m7 HEQ 等于(=)
2 y/ k9 @- `" s/ Z0 P5 J' a8 ANEQ 不等于(<>)) R# O* D3 I, C
GT 大于(>)
) S6 O9 S* A2 `EGT 大于等于(>=)' E% O, Z: ?0 K
LT 小于(<)2 j" z: P4 K' J+ P% Y$ z" p) m$ m
ELT 小于等于(<=): f% H4 i2 R5 W( @, \0 C: e
LIKE 模糊查询9 I! j+ U' S% o8 h* _( [9 E
[NOT] BETWEEN (不在)区间查询
0 f$ T$ Y$ a0 @% ]2 \# r8 Y[NOT] IN (不在)IN 查询% @. S8 t" s9 I9 _: |0 [. L
EXP 表达式查询,支持SQL语法( K5 u) G2 L- `2 L% W2 z0 T
; c: J1 a, W- f8 U! D5 q& v( A5 \4 V8 d) L& u* P
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件6 z4 @/ T7 Y* Z: f3 q0 l
M("User")->where($where)->select();//查询status为0的记录
9 Z. n5 S7 V# v+ S/ Z3 k. l; d. d% t3 F- U/ C9 W& X6 q/ e
3、where方法数组查询例子4 `% _8 q& L4 T: m+ ]
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。1 H$ I) N( b8 N/ M% z
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
4 Y: V2 l' _$ Y/ J2 i! M- jM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
# ]% r$ [6 o$ {* p+ q4 A, `; G' a5 z1 r* c# v: A- t" Y( l
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
# U! P! }$ e! f: k$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
% c, W# w/ n" L9 j3 u/ Y, ]M("User")->where($where)->select();//查询status等于0或者1的记录; D+ s# l/ W% W* V5 W2 i
' T4 u* j9 m) P8 T& _* }5 T3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
; M0 \0 Y$ n% t) V: y; {$where['createdate'] = array('EGT',"2016-04-20");
+ T. K; y$ Q j |$where['status'] = '1';& W' T3 n! L1 ?
$condition['_logic'] = "AND";7 U2 C0 a$ u: u5 s- u& F
$map['_complex']=$where; b* s+ Y% ^+ }+ o5 P' j
$map['level']='0';
& [/ G) Q8 U. y% @' L Z6 s$map['_logic']='OR';0 u9 h9 s Z% z6 ~1 F8 n* @& @
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录; S: _& a9 o. I5 n0 B/ N, `0 S. L
|
|