管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询# T6 k" z4 k2 t" P- J, s4 A
表达式 含义
0 i0 U. U+ w. q* v3 j8 `EQ 等于(=)
) J, m0 C4 \+ {" t* c( qNEQ 不等于(<>). o Z3 f5 G# F' C
GT 大于(>)+ @8 X: M# b8 {% o' q$ [
EGT 大于等于(>=)
% r D8 e- Z: ?8 x. P jLT 小于(<); t: U; D/ |' P2 r- e {$ `! ]
ELT 小于等于(<=)
3 v7 q) L, B7 n7 zLIKE 模糊查询$ K8 O8 m! N/ P5 e6 `4 L, U
[NOT] BETWEEN (不在)区间查询2 Z! U: j I6 B' |
[NOT] IN (不在)IN 查询
: ~$ k. q; s* C/ y+ i! f+ VEXP 表达式查询,支持SQL语法
8 V& i$ g+ l0 p* V- f
; r1 ?- e3 d1 R" H
7 w9 G; c& y+ [# R$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件7 Y1 ^9 W7 t3 }% M
M("User")->where($where)->select();//查询status为0的记录
5 }# K5 E6 T9 U$ B. H# h; I P( M2 B7 z" W& o: x
3、where方法数组查询例子
8 W! X, ]. R) g" m6 ^2 N' ~5 D+ {1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
9 b$ K& ^$ m [! n$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件* N- m! z, {7 c5 G9 M! V
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录7 T$ h& r H5 D+ P
, V7 T) w' T" ~6 k1 M
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。) O* x- E/ L$ h
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件- F& x6 o0 C& U
M("User")->where($where)->select();//查询status等于0或者1的记录0 ?0 g3 O* V9 P9 J" d; b
" D7 k! V+ ]7 U9 H2 V3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。 |: s& ^% H5 z% E Y6 }
$where['createdate'] = array('EGT',"2016-04-20");6 Q! `# w, c5 ?" Q2 B w4 }
$where['status'] = '1';6 i% t% h0 Z. e8 _
$condition['_logic'] = "AND";0 x6 `; M+ E2 b) N P9 B' @
$map['_complex']=$where;
9 m0 N. T/ y" \0 F( S+ |$map['level']='0';
7 h2 d' G# N6 y4 p5 f# o) _$map['_logic']='OR';
; U) S+ V& W) X# eM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
* z! L# w5 F" O$ ] c" @: r9 v |
|