管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询- L" O r. z- f
表达式 含义3 D4 l5 A" x! G8 l8 S" q6 M# x
EQ 等于(=)+ J0 P3 X0 U3 G7 K# J) M2 n; j
NEQ 不等于(<>)
* r% W& q: u v FGT 大于(>)( v) i J$ A$ W3 i
EGT 大于等于(>=)) q1 `. o0 ?1 J; X2 l3 F
LT 小于(<). u) t% l* U. B3 t9 k' E
ELT 小于等于(<=)8 S. T0 O) k/ b0 b
LIKE 模糊查询' k8 g& _2 m! q* l* g. |* K
[NOT] BETWEEN (不在)区间查询
2 `* s6 w, D5 K; v! P# j[NOT] IN (不在)IN 查询
; D* p8 s( E# z% v \EXP 表达式查询,支持SQL语法
3 n$ l+ l1 ~; W' r; @% L" X: Z; k. I" `+ o) Y `$ i" E
, k/ L1 g( r* B0 C2 B
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
) w4 y2 s. i& `! D6 `M("User")->where($where)->select();//查询status为0的记录
5 E* ?* [* _. n: ?3 j( Y
' h; a1 g" e0 m8 ]% C" A0 {7 r3、where方法数组查询例子) g5 R6 L6 f4 s6 e4 b9 g. {
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
( W$ Y# ?4 F J) ?* ]$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件5 x' C) r8 I+ \
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
+ Q6 g' \* a' p+ \0 y8 G6 ~0 X6 I R3 k E
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。# x; I, A& |- a
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
% B1 O d2 L+ e) i! {2 eM("User")->where($where)->select();//查询status等于0或者1的记录
) c: t" c- G5 \' P( T+ Z% ~3 J9 S {
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
8 C# Z1 ]) `! f* H1 ?0 ]9 L$where['createdate'] = array('EGT',"2016-04-20"); S$ n) L2 @7 K0 X
$where['status'] = '1';
/ j& E9 e, S# |9 q) q. g5 U$condition['_logic'] = "AND";
4 ^% j5 d; |5 T1 v3 ~# @+ Z$map['_complex']=$where;' @* ^' e4 d' a6 Y. ?
$map['level']='0';4 l$ _. q" G& f3 u# U
$map['_logic']='OR';8 t8 E& V2 S! ?6 X9 C. Y3 i- n
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录; e* I& }# {: C+ z/ ?2 S- B
|
|