管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
+ k' p% _: Y5 n9 ~) |, r; A表达式 含义: m6 } Z1 z2 U" ^
EQ 等于(=)1 k3 W( e2 y i7 f$ M, Q1 ^
NEQ 不等于(<>). y1 P/ T' L% |8 f- \
GT 大于(>)- s5 Z X! {6 i0 T) a
EGT 大于等于(>=): a' Z( V9 e6 O5 W- P* _! T5 S
LT 小于(<)0 }. s% e# A) o
ELT 小于等于(<=)/ @5 Y+ |: k2 u: M, P/ Q( l8 L
LIKE 模糊查询
6 G: a7 J( g* R* U/ C% k( E[NOT] BETWEEN (不在)区间查询# Z7 }% x+ Y0 l8 G5 ~. M
[NOT] IN (不在)IN 查询/ Z9 M; g! S |: ]/ O1 {% _
EXP 表达式查询,支持SQL语法
2 b z- z$ G: j: S- z! r0 A
, V6 K1 D* u9 O) d; j/ N. Q4 h3 m9 f+ A! i4 }* x$ M" n& r
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
; ? P4 U) G3 S1 @3 C9 {6 yM("User")->where($where)->select();//查询status为0的记录
7 h8 A$ G9 U. u9 k' ~! N7 l }6 e3 m6 C
& K$ h: p5 p- E& k3、where方法数组查询例子
9 `3 T R; ? P* ~1 i3 {5 ~1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
& A& O/ E, o$ s+ m9 E2 e$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
2 f- e: N$ ?9 m/ SM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
/ a$ F+ x: _6 \: T) i8 E
6 W6 g' \, C. \& _) T1 j! h$ X2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
3 Z( G- k- G& }2 Z! Y) V- D$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
; ?3 F" v& Y( `9 @' j4 y3 Y& WM("User")->where($where)->select();//查询status等于0或者1的记录* v' n0 @- Q; S4 Z0 j2 j: b
7 P6 D# l D) K* Z
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
/ x# q) B4 H: C3 M% @( ^$where['createdate'] = array('EGT',"2016-04-20");) s. ?/ N9 }/ J
$where['status'] = '1';
) R' u2 q3 E1 E/ J6 P$condition['_logic'] = "AND";
, ], E+ e ?1 h! a5 K8 c0 J$map['_complex']=$where;
% N& v6 @" V8 ?) `% n$map['level']='0';9 {/ a( L+ F2 W* w
$map['_logic']='OR';
( I* S5 b6 v0 fM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
! o2 Q: h5 Y3 }" V4 s" P% @& }4 c& T |
|