管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询, I! O N$ q5 n% g3 t
表达式 含义, u5 t7 h. u6 D
EQ 等于(=)1 e7 P* m, y' Y$ R; p4 F& m6 f0 Y
NEQ 不等于(<>)
, U4 n+ m) d/ [+ ]$ X2 IGT 大于(>)
. l! S3 n( A3 A- o4 a! iEGT 大于等于(>=)
2 t6 }5 Z+ w, {9 g7 b* ^LT 小于(<)5 V7 s+ y2 u/ a- u$ n9 D0 t
ELT 小于等于(<=)
& L) \' Q) ^, c5 L8 \$ ZLIKE 模糊查询0 F) t6 p& G# X; \+ v
[NOT] BETWEEN (不在)区间查询
) T3 O- [$ M, }' `0 @0 G+ l[NOT] IN (不在)IN 查询
4 `3 x, _: I" S4 t- |4 J) ?- DEXP 表达式查询,支持SQL语法+ b/ O6 W! V* ]% X5 \" Z' l
8 l8 R4 s. C: P2 i
: c& g7 X0 T5 [- f: m$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件2 t y5 c/ K z0 i
M("User")->where($where)->select();//查询status为0的记录& r7 x+ `+ s; t* W+ c) H
5 c6 K0 a/ h1 q7 V9 G
3、where方法数组查询例子
9 n, W* \, M6 n) K1 P9 {, v. |1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
( A5 a, [& ^( W$ J% y7 L8 \) v7 }$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
( ]/ {) ^ l- B& P: L& I+ WM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
1 J; W6 B7 ^- Z2 e' l8 S
* K! t; H& ~5 b6 W7 p. }: k2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
+ O; c. X- n% c* R$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
- D- p8 c1 G m) y8 C- c# NM("User")->where($where)->select();//查询status等于0或者1的记录1 |* p5 C+ e' o
6 J4 z) O K1 T3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。8 e3 d( u8 L0 k! k
$where['createdate'] = array('EGT',"2016-04-20");: G. P/ R. V" U5 m. L7 R
$where['status'] = '1';$ a0 F* r+ |. C! S C
$condition['_logic'] = "AND";( Y5 H6 |! m( l9 t* e l$ Y# Z
$map['_complex']=$where;& j9 K( ^- f3 V% A% R- F) G5 R
$map['level']='0';0 D' [. w4 ]. B' D- j( {+ a
$map['_logic']='OR';
/ ]! e2 z0 T' q8 S% p, VM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录 `& l9 ~) `; S8 g0 `
|
|