管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
! H$ s" d" o' ~表达式 含义
. F( R4 \7 E# g& Y5 a0 O REQ 等于(=)
! F: F! p' s& H YNEQ 不等于(<>)
$ @/ `6 h2 s$ x3 GGT 大于(>)
, r: p( u6 ~( P& H1 aEGT 大于等于(>=)
( Q' X C% G8 S0 `) ILT 小于(<)& r# T( l5 l% O0 b
ELT 小于等于(<=)
8 n& M2 H& l7 D# ^( c3 i! l# sLIKE 模糊查询
- P" j, Q4 \5 R2 o[NOT] BETWEEN (不在)区间查询! q& ]6 h4 C. c1 ], [6 b
[NOT] IN (不在)IN 查询
6 S& X1 ~0 L/ [+ N# v" ?) KEXP 表达式查询,支持SQL语法
3 ~9 y$ `0 v& I W
' P7 o' N5 S4 R% {' x( `4 G$ L- E- c. g5 e/ C: u9 d- [0 s
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
. R3 Q! ~( P) }5 r: Q3 s' \M("User")->where($where)->select();//查询status为0的记录- I' r, \6 F% \3 x
- C- ^) v# G5 J( ]3、where方法数组查询例子7 r/ y& X' n P: h/ d# s# L1 m2 W
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。, _$ u# ]! F% V, Z: C
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件% V7 A1 u; W! f4 ~* W
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
$ E# K/ S0 a! v4 h' Z+ |
! h5 i! B% h7 O1 D* J4 c ]2、数组查询使用OR查询?比如,查询status等于0或者1的记录。. q7 N$ r8 \. m2 j) B0 A6 N+ @
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
. n0 R% H ]" `( V" C0 p! VM("User")->where($where)->select();//查询status等于0或者1的记录7 Q5 C) |" h! X
: e$ x! F7 u" `! O3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。# A# R$ H* J; S+ S6 |, h/ H( H
$where['createdate'] = array('EGT',"2016-04-20");$ C @, l ~% O$ j) E
$where['status'] = '1';
/ D S& B: r6 H ~* ], R$condition['_logic'] = "AND";
8 k& F! q! X* D$map['_complex']=$where; B8 o6 W0 y3 e6 X* j
$map['level']='0';3 s: t' [! b! w* w* z) n
$map['_logic']='OR';
2 n& @* V/ {& G2 W) jM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
& o x& U: q. s# I& P+ ` |
|