管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询- u4 @1 c3 `, e7 O2 E3 {
表达式 含义
7 ]1 T' L% U: TEQ 等于(=)- C' z8 L$ _! j( y; `( r* G
NEQ 不等于(<>); h" }5 ?" o1 e! J
GT 大于(>)
y2 z3 g; l; g* wEGT 大于等于(>=)
: G7 f' l% P9 m( d) c% K7 eLT 小于(<)6 X2 t5 g- z" H/ ~- b6 O! K
ELT 小于等于(<=)
# k: S7 W8 e) BLIKE 模糊查询
4 s/ L3 O% [$ _ u[NOT] BETWEEN (不在)区间查询3 G+ y. G: ~% N0 Z: A
[NOT] IN (不在)IN 查询
2 N' \% C$ c% m- R# MEXP 表达式查询,支持SQL语法
5 x D9 ~9 |3 P) x7 _1 R5 [
; _; l3 S3 H. n. ]! ?( s* w7 y {& G6 f3 r9 n
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
5 r* X6 [& D& |" Y$ S( OM("User")->where($where)->select();//查询status为0的记录% _# \' A9 W D, p
+ r1 o) c; j* h: B v3、where方法数组查询例子" _5 m2 j6 B2 P" N" p
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。6 u9 g5 }# T( k. f F" O$ N2 Y
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
: E# P% b; c1 J/ _M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录 I, u6 m+ E; a* I2 M+ f
$ n' a1 s, F9 l1 J+ w z7 c, ~6 @
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。 N! m9 g, j) ?& m
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件$ D4 m/ X# m- `4 G: `0 q1 h: [
M("User")->where($where)->select();//查询status等于0或者1的记录' i1 \# F8 u: K! M0 `8 S& q) S
8 _3 F! i7 B5 C- U% q
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
/ z% w- z0 G; ]6 G9 I6 ?# x" h$where['createdate'] = array('EGT',"2016-04-20");
; @3 p. [% X3 x& E) P, _2 E5 p# u$where['status'] = '1';( J# ?6 u8 ~9 h7 e, d- `. W' I
$condition['_logic'] = "AND";
& F" {* G' @4 C+ G h; R6 I% R7 B$map['_complex']=$where;1 B" R' u5 {, g# E. R" C2 @* k
$map['level']='0';
1 D) w j; K' @2 ^8 Y" K$map['_logic']='OR';
5 `/ o1 s' q) W0 sM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录8 ~4 N2 _/ l; h1 C
|
|