管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
, [5 l& @; d' }; @* C+ k表达式 含义
% _$ v0 Y: @2 n( S5 qEQ 等于(=)
1 h$ ^ R$ n, _0 ^7 Q' K9 ENEQ 不等于(<>)
& n$ X, E) q) b$ K! z- l4 o+ V, I3 `GT 大于(>)$ T/ n- J* J2 O% k" C
EGT 大于等于(>=)
3 U/ F( K( N x! L' p4 R4 pLT 小于(<)4 Z% y2 M% m( @/ h: e$ J( |
ELT 小于等于(<=)* s: y; @. f+ w
LIKE 模糊查询
3 a, {" i4 a7 R: v2 E[NOT] BETWEEN (不在)区间查询
$ j* t- m. Z, c[NOT] IN (不在)IN 查询
1 h: _) B* d4 y' MEXP 表达式查询,支持SQL语法
% }8 }5 I) }7 \3 B) |: }
, ?9 k h/ `2 ^ B, r" Y9 x2 f+ ]0 I; K* e
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件: u" Z3 f* {4 o0 E5 X
M("User")->where($where)->select();//查询status为0的记录
4 \0 Z" n. b& q) X, c! d1 f) H+ |4 P! b) H+ ?% k" T1 L
3、where方法数组查询例子
4 t" ?9 I" J) n' j3 s! E1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。4 q2 e+ j" N4 t/ ?1 J) q1 J
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件* |. J1 Z; G" n8 A& O; I( S
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
Z5 j; {: W {
* R8 V% X3 {, l2 R2、数组查询使用OR查询?比如,查询status等于0或者1的记录。$ `9 D; E7 P" @+ q: e k
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件! B4 u0 I+ X4 F3 d8 t2 r
M("User")->where($where)->select();//查询status等于0或者1的记录
# d& x% E$ m! m( a5 y) P/ C1 ]4 \5 d1 Y2 T+ O% T- Y# o
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
: U! @/ g+ E D) n; N! F$where['createdate'] = array('EGT',"2016-04-20");
* q+ }9 g6 O9 s6 R V7 \$where['status'] = '1';
7 _$ m$ V. W* L- c$ `/ N$condition['_logic'] = "AND";3 O2 E. r# \* f, C% S4 ~4 `3 ]! d; C
$map['_complex']=$where;
- ]! ?2 t2 \; x0 O' d$map['level']='0';
. X7 C$ \4 t. c% M$map['_logic']='OR';
$ \5 d8 m4 c! }9 k% w UM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录8 X9 h1 i1 y" l! r
|
|