管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
+ V0 W; d4 l% ^( e4 R V表达式 含义9 ^* A8 C# Q9 w# r* ~" W2 _0 J. C6 j
EQ 等于(=). F( b3 y2 `! m2 O7 g! y9 F( A
NEQ 不等于(<>)( B; n u9 b* c" ^
GT 大于(>)! h0 S" o8 I* [/ g8 ]) A
EGT 大于等于(>=)
2 t5 o. \' I" n b9 L) U: WLT 小于(<), N' _0 f; G( \" d& i
ELT 小于等于(<=)
5 f: x8 f# ^- X; ~/ a$ @LIKE 模糊查询
/ w v- L5 O8 u* ]: Q2 {6 p7 z[NOT] BETWEEN (不在)区间查询, v8 X& I- v# t7 `/ r! _3 R" i1 `
[NOT] IN (不在)IN 查询) G. y( X/ Y( v2 X+ ?5 n, J- i
EXP 表达式查询,支持SQL语法
2 u* L& j" q4 J7 u& M
6 _1 Z1 O8 v/ B& o; N' R
: s) X! |. s9 J$ d' D% n$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件2 z+ C1 a' y# h3 u* ~3 L
M("User")->where($where)->select();//查询status为0的记录
8 V) r4 d7 i0 \' K/ W9 h& ^! b" I
. f5 X" C4 k6 T% i0 D3、where方法数组查询例子' j- {2 b( f. Q q6 ]- _
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。1 ~2 k0 P. K6 Y" |& x( k
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件" T2 L! h$ H! K* b: q( `' s. P0 l
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
7 j1 c8 Y" v+ |" e) K0 C7 J" R- ?8 I+ x" s! C" `* j
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
7 G6 { `6 W5 D1 G8 F$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
% ^ A! F9 ]: x" MM("User")->where($where)->select();//查询status等于0或者1的记录
" d+ [: H6 E" k8 ?( ^& b5 a$ Z l" \9 p. M! j. X& w; A- {
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
3 m' J/ c8 O9 D( t( r: s$where['createdate'] = array('EGT',"2016-04-20"); [: Q9 l' g: a+ s5 P/ X/ ]; t
$where['status'] = '1';
$ ~* i0 x- m% b# u' r4 W6 v+ g$condition['_logic'] = "AND";7 n/ A+ p/ }/ B7 |, n3 T
$map['_complex']=$where;
. P6 d. J# A. M/ b8 a$map['level']='0';
) a! d+ N' [5 z) G$map['_logic']='OR';% q6 D/ m# U. @! ]% }% o7 D( c
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
% D; w; {2 Z {4 `3 w |
|