管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
* N% S" O0 D* _& ]" F- _8 T表达式 含义
+ P K2 z8 l1 m# D6 WEQ 等于(=)- i' c& l5 ^8 g. F& d( b
NEQ 不等于(<>)- N% I* q* {% g3 o
GT 大于(>)) `3 B4 y3 c8 |
EGT 大于等于(>=)" ?# d& s. K+ P" @2 w
LT 小于(<)
, q5 B$ _/ p: X0 N# r" _ELT 小于等于(<=)
; N# c# p: K' L- C+ o" xLIKE 模糊查询) E) t0 W3 F1 g2 L' e: h
[NOT] BETWEEN (不在)区间查询
/ O$ O# A5 A% p2 \5 t, U6 E( E, N[NOT] IN (不在)IN 查询
( T" j- `0 G1 y4 ]: O0 m! ?, r2 cEXP 表达式查询,支持SQL语法, ^ O: U. x. b! x, h$ d
1 i; @3 i+ P3 l$ h7 O& v" I( ^. \. y; m. h7 J
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
1 d0 d# K4 Y" ?0 gM("User")->where($where)->select();//查询status为0的记录; j# E2 b% Q/ F
% n* i4 k. E. I2 ^3 U3、where方法数组查询例子
; i, J' o; Q9 N4 m. X1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。' p3 e. j; ^# ^1 } d. ?7 C
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
, t$ O4 U) M+ lM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
0 _) V$ Z2 `" D' W$ r! ? }$ @1 n' {+ J8 K7 @
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。5 @5 P6 v# n$ n9 o; M6 c
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
/ _6 U5 X6 ^9 J( N. mM("User")->where($where)->select();//查询status等于0或者1的记录
' H( C/ E/ r; ^4 h) o
/ }# z4 j" P& O- a6 E7 [/ I) i7 `3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。$ v n3 } S# O
$where['createdate'] = array('EGT',"2016-04-20");$ ]3 m5 f2 O1 v
$where['status'] = '1';' A1 S0 ?3 s! N8 {
$condition['_logic'] = "AND";5 Z" \* p; e' N3 i( a* F
$map['_complex']=$where;
2 Q6 i3 ` {; v+ J5 {# n$map['level']='0';
" D9 x: N4 U. M1 B$map['_logic']='OR';6 ]+ O6 ^- @9 Q3 X
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录: K6 s6 M j; n2 y4 m/ H* q
|
|