管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询/ y4 Z3 R3 R8 C, v% ^
表达式 含义
. B/ S3 K' A& rEQ 等于(=), T0 K! ]; E& _( t8 |+ e
NEQ 不等于(<>)$ b& `1 M/ z2 q7 V. m+ g+ e1 q% M
GT 大于(>)
# f- H. i% f, z# @" I2 T1 TEGT 大于等于(>=)/ x E8 J6 h8 t7 {
LT 小于(<)
% j& P5 o& S% I$ J9 d5 [9 bELT 小于等于(<=)
+ F4 q) M. `" \+ \" wLIKE 模糊查询
* w+ t, ]6 M6 c! s/ [# n[NOT] BETWEEN (不在)区间查询5 g% ]( n4 i7 j S2 \- i: C; j
[NOT] IN (不在)IN 查询' p! R- K$ m$ t. X5 P0 L7 T
EXP 表达式查询,支持SQL语法
5 W! D4 H3 p s3 ?- g0 f+ q% v
( i7 L) o! H4 E2 e
. R1 x( w1 W. q; p, T+ G$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件8 Y e( m. F: i+ F* a
M("User")->where($where)->select();//查询status为0的记录
6 D& T9 i& h5 M1 o: _- g# ]7 [
3、where方法数组查询例子) W4 X2 a% A: V7 o
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
: P" h$ c( t/ T5 ^; f* b u$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
6 |* H& \* d) g; l! L6 J! g6 _M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
) p4 D. C) F% I$ @
$ e$ u. @" w; ^2、数组查询使用OR查询?比如,查询status等于0或者1的记录。$ e# Z7 ?2 c) n
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
" @0 @! K+ E: i( p1 t& T# JM("User")->where($where)->select();//查询status等于0或者1的记录
# j- ]: o3 w$ O2 O8 {& k
* s. t$ [+ b- C3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
/ J# {) P( o* e+ B: E$where['createdate'] = array('EGT',"2016-04-20");& T) _# A- b& W3 b$ y! ~) E, o
$where['status'] = '1';
# f5 b& V, l, f9 I% [$condition['_logic'] = "AND";; L5 W# j' i4 G$ o- V0 r5 L
$map['_complex']=$where;
2 o0 J2 x4 y" @, A# }9 i/ p$map['level']='0';
0 ^1 O. s2 d6 W8 y$map['_logic']='OR';
5 b3 U/ z; P) m; ~M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录& Z. f i1 A/ n
|
|