管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
; x/ ]) {, c1 W9 i; i' s表达式 含义; ^# w6 [9 s9 `* r. D
EQ 等于(=)4 a0 M+ n4 m4 ?2 _
NEQ 不等于(<>)& G( [- _( y& H" f* H h
GT 大于(>)2 B1 h5 Z3 Z+ P8 N
EGT 大于等于(>=)
) _9 F0 P, N- P# h* sLT 小于(<)
0 N5 S; v+ R& M" Y" I4 qELT 小于等于(<=)7 ]5 a/ B1 e: |8 @, i, A9 f' X
LIKE 模糊查询6 _) [) w0 X- ]: _2 v: X0 t
[NOT] BETWEEN (不在)区间查询
! k* S b' M3 Q0 l6 i5 G0 a$ q[NOT] IN (不在)IN 查询
# ^0 O9 T2 q$ Q2 cEXP 表达式查询,支持SQL语法
; t! y. L3 n& S6 d! M# L/ N* y7 P0 H) O e0 f4 y
& G. B4 N5 X0 q! F1 d6 l) h
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
5 `# R& T4 Q5 g' j- g @1 JM("User")->where($where)->select();//查询status为0的记录( d% M% t" v7 m7 a" i# U
! R v; e3 m, U# P3、where方法数组查询例子
! S$ Z5 X9 B! B) |9 Z. @1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。/ }/ t# n: V& M( A+ Q7 r
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
. }) ?0 F3 Q" e% D0 H7 s8 G; \M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
7 b4 Q$ l8 M0 v5 t/ V& m3 i o5 B( ~0 t2 _* j7 C- O
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
* s" L* a) ?6 H m/ P$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
: Z+ Q3 c4 s6 d( B; f0 u7 O0 \' {2 EM("User")->where($where)->select();//查询status等于0或者1的记录
9 W' v, A+ a% J1 o" r l
+ G2 D7 I: R: E3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。& L4 d3 b& D2 F% q4 z x
$where['createdate'] = array('EGT',"2016-04-20");: P0 G2 S5 G& w0 i, y1 _+ w
$where['status'] = '1';* ~1 {" X6 x0 G; O1 ^: u" b6 P
$condition['_logic'] = "AND";/ e1 w: Z# ]. `3 c7 {# {* z
$map['_complex']=$where;5 K) w: U0 h+ ?/ t* L2 }
$map['level']='0';
6 ~) P- N" h( _, b' o g$map['_logic']='OR';
0 E3 G8 m. m5 z) Q( y$ _- a& }- y6 A+ EM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录# }1 o; {& S3 X9 p2 q
|
|