管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询& t9 ^6 L4 d/ I% W9 _
表达式 含义0 H" O8 S% S/ i1 N7 q: E- \
EQ 等于(=); g! K; A: d& M' h/ @
NEQ 不等于(<>)
: O$ p7 Z) B) D2 k8 U4 nGT 大于(>)$ G. s' n# L2 A9 \; H% w
EGT 大于等于(>=)
8 e/ P3 }2 j0 c: j( `: L! LLT 小于(<)- I. X# T+ b; H# e6 }
ELT 小于等于(<=)
[( {( j" }% t8 |/ vLIKE 模糊查询8 c( f% [+ S. ?
[NOT] BETWEEN (不在)区间查询- a$ y, l& I9 a7 U, a" g3 A& z9 g% g& U
[NOT] IN (不在)IN 查询+ v. ]6 T0 E/ y/ W6 Z
EXP 表达式查询,支持SQL语法# M$ g* n* h1 v0 ~9 b8 K$ g; z I/ v
" H0 a9 g" ?; y2 W% F+ o
4 r/ `* a: m5 X; n6 R$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
" U8 M; ] Q4 JM("User")->where($where)->select();//查询status为0的记录
9 n0 [+ Z8 A( z! z6 u1 e1 T _+ {8 i, q: o& G2 ~, H5 K, @
3、where方法数组查询例子* h) f ^2 ~/ F
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。& m" h ?" B8 T1 o
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
0 X% W- Y' L- s+ I# v/ rM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录: p+ O3 ]1 T o0 o/ j5 k% |
7 F3 s7 v/ X# A7 A' P" p5 J- `4 l
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。* w1 n8 _# S& m( W
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
; j0 W( F* e1 U8 y' pM("User")->where($where)->select();//查询status等于0或者1的记录
, A; ?- ~. k9 e3 S6 j
4 @! E- N3 G! H2 P1 U0 C% ? n. G3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。5 {& B; ]% Y$ k, J2 ~" I
$where['createdate'] = array('EGT',"2016-04-20");! _% f. S, g% E5 b& ]9 A
$where['status'] = '1';
1 L7 U% j/ G) x% v4 L' d; A! C; Z9 g$condition['_logic'] = "AND";
; F, @, U+ {- M' ^ d. s$map['_complex']=$where;4 C( f- q5 u# D* J' u% ]
$map['level']='0';: X( c8 ?3 t- {2 H
$map['_logic']='OR';2 F% F4 M1 t. |( J6 i
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录 U: z# M7 L; [8 }0 P2 D8 m$ B
|
|