管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
& a" v) ~& Q* A/ z表达式 含义
/ @6 p' K( [1 h2 dEQ 等于(=)
+ N g+ b( T0 {' Q4 [* oNEQ 不等于(<>): ]7 p- D. S/ A
GT 大于(>). }0 J0 ]: o5 ^0 \. N z
EGT 大于等于(>=)0 J8 N+ A- H' i
LT 小于(<)# S) P& ]& r3 u8 d' V8 H8 I
ELT 小于等于(<=)7 X; S8 N4 E3 a
LIKE 模糊查询
+ B' C; ^7 ^. J1 c: P# ?[NOT] BETWEEN (不在)区间查询4 z5 q# L# c3 q* ]
[NOT] IN (不在)IN 查询, l/ R) F$ r% p# R
EXP 表达式查询,支持SQL语法! L; w6 g5 a x
) k% l) I5 X: C4 z! l' M; c3 E, O; l1 J6 e6 l, ~' f/ X
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件) h& e* J1 s* a# t2 s
M("User")->where($where)->select();//查询status为0的记录
" \ P0 I A" t! G+ A7 i% y5 I7 T4 V) O. S) F: Z) v8 T# C
3、where方法数组查询例子8 {. Z$ y8 u0 P% c
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
% f) j4 p. f# Z7 V- {$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件, X) `" c$ b& w
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
, V! L+ Z: T) L0 a0 K6 D' V5 K& ^& M2 D, k5 b8 v' N3 u
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。9 `6 ~; |! M; D% o7 {: ~
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
7 B& _; @' R) R6 C! e4 |. O2 eM("User")->where($where)->select();//查询status等于0或者1的记录
/ o" g: f1 R4 H5 _' ]! ^2 |" ^5 D# v$ Z) v% k
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。8 F, Z5 K* T# n% Y5 c) \ q
$where['createdate'] = array('EGT',"2016-04-20");
/ `' R( \# ?8 {$where['status'] = '1';4 j/ n+ b+ S' ~4 ~3 }1 u/ o
$condition['_logic'] = "AND";+ D1 x" h* k$ j% D
$map['_complex']=$where;; @4 K. T& A- R2 L- F
$map['level']='0';7 [+ H ^0 ]$ X) P1 T2 r. B0 y
$map['_logic']='OR';$ {4 y# A9 j3 k, f5 C
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
9 g. T0 ^8 C0 m$ c |
|