管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询4 ~: M5 J, i" @
表达式 含义 m/ o1 p7 r5 _, v: g% }
EQ 等于(=)
- ]+ w4 c* M* q$ l) p' @/ kNEQ 不等于(<>)- A4 w2 }* @/ }7 |8 m
GT 大于(>)2 v0 T t% M7 T0 R" B1 O I) r
EGT 大于等于(>=)
4 f2 j: X( K9 V* v: c* Y$ m7 ?0 nLT 小于(<)
1 W$ f8 u- E# n Y. T0 vELT 小于等于(<=)
( g* Y& D r w" C7 rLIKE 模糊查询* O. B, Z/ ^# L( H- q
[NOT] BETWEEN (不在)区间查询
. A5 m1 r! ?$ n[NOT] IN (不在)IN 查询0 a" e- @) Q) G1 y" M/ E Q7 ?, R
EXP 表达式查询,支持SQL语法
6 `% t3 F7 V+ m' D
* w8 O9 @0 y' d) P# t5 d r. b+ C- V' s$ v3 @, M' U7 b: U
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
" B( c& p2 b+ e* @# m7 {1 gM("User")->where($where)->select();//查询status为0的记录
) w/ k) t& _6 n5 {4 ~9 ]
7 O2 l/ ~8 J/ D/ {- v& ^3、where方法数组查询例子8 g( r y7 O% G& Q
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
6 C8 d* F, j k* ^2 G; g+ X$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
* P0 @, Q" x+ R( c. @3 fM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
`5 m% r( k# r$ T, k6 u
4 n7 }; z/ _. y0 a2、数组查询使用OR查询?比如,查询status等于0或者1的记录。/ y: f7 ?/ [/ A/ G/ O6 `3 n/ M! F( \
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
) `0 q8 z3 S7 f, x$ Q% C$ x8 VM("User")->where($where)->select();//查询status等于0或者1的记录$ e5 h3 ]5 Z V$ d( y7 d( q
& \) l3 ` p1 z5 U$ k
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
0 Y' z4 B2 q; M6 A0 Y1 X$where['createdate'] = array('EGT',"2016-04-20");
; h. e2 t+ g# H; H5 P$where['status'] = '1';6 |0 }& h, ^5 `* ], [
$condition['_logic'] = "AND";( D. X. |, w! z/ F" D6 W2 c6 j
$map['_complex']=$where;: J+ j7 j! u7 T: V) _9 |! W( d4 A& T
$map['level']='0';' R4 D+ c0 v( j% R6 _# C6 I
$map['_logic']='OR';
/ z% j3 G+ M, E& |6 J( X' hM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录. {) b- T+ b6 b9 i: h
|
|