管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询$ A1 E+ N S1 s$ | E
表达式 含义; v7 R% m( q9 f. M' l
EQ 等于(=)
: q) T5 T. W" i0 b1 j, a( iNEQ 不等于(<>)
}( s- F& a/ Q" o( FGT 大于(>)- g+ W m* h* ]- \0 p+ |* B2 b
EGT 大于等于(>=)
# [0 d# b" H) ~; E/ y$ ?LT 小于(<)
% ]) K7 u4 m. ]! z6 G+ F/ sELT 小于等于(<=)
, j/ ^. m) w) l# t) _LIKE 模糊查询1 y, w$ Y: c7 s1 j. X. o: [$ }
[NOT] BETWEEN (不在)区间查询9 m$ d7 \0 g& L! c' @
[NOT] IN (不在)IN 查询
; H, ?/ d2 W( p4 p. vEXP 表达式查询,支持SQL语法) n- o; X7 X+ X# m3 C" n9 l
& n$ [ c5 M0 a5 y8 F5 h: j6 s8 d( R) @- D) H# {
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
" z. F6 I/ h% w% u, JM("User")->where($where)->select();//查询status为0的记录
, A3 p# a1 C1 w8 D% v
2 [# c+ S0 B- N- J7 ^0 @! S3、where方法数组查询例子
& z1 M; }' k8 a$ U( C1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。3 r8 @1 L( O/ Q% ~) e! Y f
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件# O; ?( R) U( |0 h$ ^( I5 q8 v
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录. Z+ p* T! ^- F2 @+ o/ M
: t) _' b9 U& }0 q9 g4 w; f
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。* L. C9 o$ Q, s- W5 d/ \+ s1 `5 c
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件7 \; e! W: ^& |3 C
M("User")->where($where)->select();//查询status等于0或者1的记录
; ~8 \' t6 e! T" N4 G, |; H1 T5 P- G" |; ` {5 G
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
5 J# p5 K4 @1 I1 i, K; k! m; q! o$where['createdate'] = array('EGT',"2016-04-20");
0 V: r5 D3 V* V# x3 c0 M7 s$where['status'] = '1';$ a( V: h- u# N, e
$condition['_logic'] = "AND";
) e! e' ]8 R7 M6 T9 W6 R& |* j$map['_complex']=$where;. L8 ]+ c Z; x/ I! e2 w. G& |
$map['level']='0';
" A+ t6 z8 J: } ?- q) r# e i$map['_logic']='OR';
" d9 j" H1 l$ xM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录 c1 ~) _" c/ z& z$ s
|
|