管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
& a8 x5 u% C6 L表达式 含义
' t3 R0 s, z/ [ h! C2 bEQ 等于(=)" g& L0 a0 o1 E) E5 \( V( b
NEQ 不等于(<>)
5 Y: @0 Z/ S. I0 l7 F; g8 P: ] sGT 大于(>)
& w" z4 U$ F2 W9 z- p1 \: p E8 h1 QEGT 大于等于(>=)
+ r( B6 J7 R5 R6 U+ pLT 小于(<)8 a1 Z3 | D9 d1 X/ F+ S# B" D) Q$ u
ELT 小于等于(<=)% ], X& F' [6 I( ?
LIKE 模糊查询
' D V' ^2 A% ]2 \; N2 a! b[NOT] BETWEEN (不在)区间查询
1 V& n6 }9 }4 A$ t[NOT] IN (不在)IN 查询6 Q1 N6 B4 \: Z( F& F ?
EXP 表达式查询,支持SQL语法 H* Y7 \) z2 m* R* |- N) z! v, {9 x
?" S; C6 o E2 l, O
' q! r. U* _+ d( S* H$ t( U$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
# a1 D K3 Q% F/ r8 N9 H% KM("User")->where($where)->select();//查询status为0的记录
. t- M, T$ E! u# s' b5 m$ T; L, U$ S& A5 V) f$ e9 n# V
3、where方法数组查询例子
$ x" K; N7 d! Q: N# h$ v( b1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。' O9 x9 k {' B% L
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
5 Z5 a. U( H& d, J. g, b! N3 CM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录) _2 d. S% }7 c3 ^7 H+ q% n6 X
* Y0 n+ e# u" a+ Y. i2、数组查询使用OR查询?比如,查询status等于0或者1的记录。: ~2 Q' U! C, a3 J) L% n
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
" |4 N7 M. P/ j+ XM("User")->where($where)->select();//查询status等于0或者1的记录
" ~; B; C( b/ Z( u( f3 H7 D$ i# O# W8 y) u6 Q( M5 l
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。& ^3 _. D* j! n W8 t2 ~
$where['createdate'] = array('EGT',"2016-04-20");
/ n' ]# K+ j2 ^* g+ N3 ]/ v$where['status'] = '1';: O7 ^2 O$ y3 A9 m' B
$condition['_logic'] = "AND";
5 G- u7 ~4 ?1 Q9 m+ R$ U6 O$map['_complex']=$where;
5 X& n5 c' r D9 D$map['level']='0';7 a' p. q% y4 N2 c5 J' y( F
$map['_logic']='OR';
8 K2 A5 }3 M+ C+ O, _M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
, F4 t* [ J: i, M l: ` |
|