管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询' b; m% \& }' p" V+ ~7 X; ^0 R! C
表达式 含义1 C. N/ X- z/ N* {
EQ 等于(=)/ F. {; t7 e, Q& ^- X
NEQ 不等于(<>)- v: E$ O2 \0 \4 \
GT 大于(>)
5 u% {, T- q- u* J# ?EGT 大于等于(>=)
' H8 k( z2 X$ `$ A0 e7 {LT 小于(<)+ i. D# z U5 B6 K i' m
ELT 小于等于(<=)4 B3 \( C/ x6 U! E# n! Z
LIKE 模糊查询
4 |0 J& p3 n9 C% o+ O& a[NOT] BETWEEN (不在)区间查询
+ u8 J' F. v. G& P9 C! e[NOT] IN (不在)IN 查询
+ s2 q0 p" ]; l& pEXP 表达式查询,支持SQL语法
! f# w2 N$ H! o/ v0 D0 H. B9 ]5 m0 S7 G9 ?. v5 L9 A
0 f) }6 R8 u4 T t2 {& k# E
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
{9 _# \# h) v: V% j. N sM("User")->where($where)->select();//查询status为0的记录) j$ V9 G3 b( p' r* a- B5 _
: m. j. l: ]9 Y+ y" ~
3、where方法数组查询例子+ I5 t$ E. V" D. m+ o1 N& F
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。3 {- ^/ r/ _- K' Y4 m% C7 C* g3 z
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件$ M8 U3 S" ^9 j
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
; K2 [0 X; u2 G0 K% o
( `4 P! S+ |1 E4 t5 F1 d2、数组查询使用OR查询?比如,查询status等于0或者1的记录。% m' O3 {2 J+ F6 ~: u+ `, e
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件 \2 Z5 H; L: O2 K2 l5 K
M("User")->where($where)->select();//查询status等于0或者1的记录
, Q# n# F5 `- u `
) T! r- k/ X8 U$ h: p" Z3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
, v0 T, @5 @$ K6 V$where['createdate'] = array('EGT',"2016-04-20");* C( ]" F1 K- \/ J/ k; ?. O% E
$where['status'] = '1';
* M( e1 `% n" E$ }/ Q$ [3 s$condition['_logic'] = "AND";* z4 H' h! J% |
$map['_complex']=$where;
8 U$ @3 [0 M5 F' k$map['level']='0';7 \/ P: i1 f/ D5 U9 o) e2 I
$map['_logic']='OR';
- {/ _7 O n4 t! n) ^, zM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
! o' k; v# A' V& ?1 ~ |
|