管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询( K# X/ ~) \7 c$ g! ~" M
表达式 含义
& m' b* _$ f& V+ h) e e; s" g$ v* eEQ 等于(=)
; F3 r# H/ l R0 I, o1 `NEQ 不等于(<>)
: g8 z' h0 B4 X: V& E% ZGT 大于(>)# x- t! T9 L; x3 S
EGT 大于等于(>=)
E) L$ i R+ ^5 G3 ]; C; OLT 小于(<)
7 N9 H6 b! I) f3 }# bELT 小于等于(<=)( R; {" O7 s3 U+ T) _
LIKE 模糊查询
0 w: j; g6 m$ X9 k! `[NOT] BETWEEN (不在)区间查询
0 g6 y, B0 A9 M[NOT] IN (不在)IN 查询" A% ~" d% Y6 T, R3 S% _
EXP 表达式查询,支持SQL语法0 p+ P$ ?, T8 s4 N" q
! C% {9 _" z9 O4 j, L+ T3 S
# m4 `( L2 u9 O. S6 d. }% l1 m$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
1 d" j& E; T8 S: `; {M("User")->where($where)->select();//查询status为0的记录
- M5 \; M. k4 |, u- }0 B* w. Z% H. x% s5 O! Q8 h! U# C
3、where方法数组查询例子
' ~3 Q( [2 L; N) {: o+ p/ d# V: z1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。$ G6 ]$ h& }* ?8 C1 o. @
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件& x U# Z. a- [+ M% p0 [3 {
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
( d+ h5 G3 q2 [
6 q$ s# n. L8 G k5 S0 }) H9 o2、数组查询使用OR查询?比如,查询status等于0或者1的记录。! w8 a+ W6 @1 Y8 z1 P- \
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
$ `3 d/ \) k- |( M4 KM("User")->where($where)->select();//查询status等于0或者1的记录: M- Z* J( X0 \4 m7 v
) T$ ~% B1 ]1 q; H. p; k3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
7 y% r& c+ a$ W U$where['createdate'] = array('EGT',"2016-04-20");; n9 V6 y. p0 |5 N3 C% ~
$where['status'] = '1';4 v2 ?) H8 D8 @7 a( l0 c7 a
$condition['_logic'] = "AND";6 l& ~' f4 h+ E0 A, ]1 s: @! k% a! v5 C
$map['_complex']=$where;+ e e, M: B' Q
$map['level']='0';
/ O- E! G1 s# Q$map['_logic']='OR';
, u9 ~0 `+ \/ B* O. ?1 M" `M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
( H7 k d7 }" S |
|