管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
) F4 D$ D( G o( ]5 a8 T表达式 含义
6 s, P) S& I0 C) s% u# j$ sEQ 等于(=)
% M( R( {# [" x: _6 W. }NEQ 不等于(<>)
& P' O: g% i' r" `GT 大于(>)
( a8 k9 |) _8 M- GEGT 大于等于(>=)
, D, P. Y" C% @1 E7 A9 s$ HLT 小于(<)0 @ X, n# B2 k3 v9 w( }. z- T
ELT 小于等于(<=)0 F, k0 f7 L) D
LIKE 模糊查询: D& i7 ?% V. H2 [/ Z
[NOT] BETWEEN (不在)区间查询
) i: ]! J r- u' {1 c* H5 J- ^[NOT] IN (不在)IN 查询
% i7 d( R8 L3 |5 U9 H5 REXP 表达式查询,支持SQL语法- x7 _7 `! n) F+ B" q0 @, X5 G4 e% L
1 G+ Q6 }, g \
$ c$ ^1 M* W- w4 b$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件7 a: H1 F0 x% [) o& k# N* @
M("User")->where($where)->select();//查询status为0的记录5 S; ^ o3 Z" L% N/ N) m, ?4 y( E
" l( Q4 q8 h2 F4 ]3 s/ R; ~6 j4 A3、where方法数组查询例子
2 Z5 R7 D3 L; ~% H8 [$ O1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
- K9 [: U0 U' `: B$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件' k: H) @2 P3 m' `1 H
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
: C; ~1 C/ O. D* ~/ E& h& r8 o: ~. l) z
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
# D+ P: O' d. o) W$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件. b( D7 O) o* J% _
M("User")->where($where)->select();//查询status等于0或者1的记录
9 A1 S8 P1 z( w- U/ d, C2 x/ }
; H5 n. J' m! N" M) e3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。; H* V6 \$ ?: Y. s$ K e9 V6 C
$where['createdate'] = array('EGT',"2016-04-20");
' M0 p% l* n2 P4 S; x6 i* }$where['status'] = '1';
+ o: b5 B$ H. H0 E' s0 I# v$condition['_logic'] = "AND";
0 L* t/ t" | { u$map['_complex']=$where;
9 j5 o! ~; S1 @8 Z. e$map['level']='0';
9 M/ Z- z M2 U" {$map['_logic']='OR';
3 x8 r- S) e' ]' g4 `M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
1 Y7 n4 |$ m% k( a) T4 u) p% b |
|