管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
/ _. }) d; {" x表达式 含义) S# G2 l! L9 l/ k F) j& C
EQ 等于(=)! N+ k: x D4 h$ e7 x, X7 A3 B# S
NEQ 不等于(<>)
% g9 W0 r+ Y$ |* `( g& tGT 大于(>)
) m4 A) l) O4 @6 e# e9 JEGT 大于等于(>=)& b1 l3 a0 L6 r( b4 n v' V3 h
LT 小于(<)
" T' l7 v' a6 g- f3 o QELT 小于等于(<=)2 Y# Z0 A2 V# ~/ j* \3 t* k
LIKE 模糊查询3 Z) S' R1 Y1 y. s( {
[NOT] BETWEEN (不在)区间查询
" _! K- Z; l# b- _, y[NOT] IN (不在)IN 查询+ s7 G: k) P% g/ f2 v& S7 ~/ z
EXP 表达式查询,支持SQL语法' e+ Y2 K5 j# D) ]4 _
; s% b- Z- I- U% y2 ^! X
3 a) Z% o* e' \0 t7 p4 D6 F' G) G$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件; j. e4 y, k* E- j% ~! S
M("User")->where($where)->select();//查询status为0的记录
, h& o! N% m+ U! T! c! T5 J a5 d9 L: W3 `0 U. F
3、where方法数组查询例子3 B# I' i: W: S2 c, c8 B* I
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。+ r( v0 u' _$ T
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
4 i, l7 m' R5 A1 _; AM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录2 H3 V* m4 s+ Y9 g5 E
r" h3 q1 D ~1 m e3 w, X# S2、数组查询使用OR查询?比如,查询status等于0或者1的记录。; R6 c& J) F( v% {5 b: Z# L
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件9 u+ _% l% u/ K2 q+ g( t
M("User")->where($where)->select();//查询status等于0或者1的记录
% G8 }3 q8 {' l3 k# V5 [5 O+ l/ s0 P { s( z
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。( i# _ r0 m- T, |3 I
$where['createdate'] = array('EGT',"2016-04-20");
. h8 \+ m+ n* J0 s$where['status'] = '1';
/ C0 `6 T4 m8 ?9 n2 \$condition['_logic'] = "AND";
q4 M$ k0 A$ ]! c$map['_complex']=$where;
1 ?2 {1 M1 y* p/ F4 g: I+ Q" G2 W$map['level']='0';1 b' \/ A2 q5 `6 @
$map['_logic']='OR';
; U: C! V4 `1 P- `( cM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录$ O. G, n- K- h+ q3 g5 |
|
|