管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询9 c: ^- [1 S+ j" Z1 _7 ~- `- ]3 g! x, c0 u
表达式 含义' y) R+ j5 J! Z4 \
EQ 等于(=)* ?: z' m! _& U( {
NEQ 不等于(<>)
: O8 x9 t( K8 W" dGT 大于(>)
" c1 P7 F: l/ [+ M. K0 ?, E5 BEGT 大于等于(>=)
5 Z4 K: [, B& t, W+ jLT 小于(<)
2 I! f/ W! ^/ a8 c' EELT 小于等于(<=)
/ B: |, O& T. i1 HLIKE 模糊查询
. \3 u* z5 y/ F. H+ J$ q- Q+ \5 }& s5 p[NOT] BETWEEN (不在)区间查询
: x2 w* s- ^4 W& O0 i' q8 s' n' G[NOT] IN (不在)IN 查询$ D6 J! U( L r4 D
EXP 表达式查询,支持SQL语法
1 ^7 _* l4 l* u0 A# n& {% a
6 y3 T# ^) D4 D- T( I; K7 ]
' U3 P4 B# l- e$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件' _+ F5 ], n, `; n6 z5 n
M("User")->where($where)->select();//查询status为0的记录( H# a5 B2 x% y1 z- A( e4 G3 C
, M6 b4 w5 `2 I: G3、where方法数组查询例子# d! z, l2 r0 J: s- v v4 J2 H3 A
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。- Y/ P2 G/ u! M" h4 w) p
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件% l% `. A6 l1 ]0 r5 u0 u5 f
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录' o# r2 j9 S; h: _" M
/ V' o* g. `# B3 e6 I* m
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。, y- G/ G! E4 J. B
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件, ]1 s4 v) X3 X7 y/ h
M("User")->where($where)->select();//查询status等于0或者1的记录
0 S+ o7 d" v. ~! |$ y. R
. ~& O" O) `# T J3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
: z; w& n( {; @/ m @ g* q0 m' N$where['createdate'] = array('EGT',"2016-04-20");
2 M- S) S. H, W( O; Z$where['status'] = '1';
6 Y. T6 f w0 Q; ?$condition['_logic'] = "AND";' U3 T- C2 ^% Z8 u1 X- K
$map['_complex']=$where;- Y. c5 W' H7 q9 _* z
$map['level']='0';
- V8 T; q' Q6 ~4 V. N, q1 Z$map['_logic']='OR';: }! }# _" F: ]8 |( W; V
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
+ d# f+ J1 i& @# I |
|