管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
* \* P) G, G0 k* d1 {5 q. f! h* L表达式 含义; T# y! {/ p" O0 u) _
EQ 等于(=)
- }" u* x) X% K O3 ONEQ 不等于(<>)
/ q# @+ S' n5 t' AGT 大于(>). S: O% R J* Y
EGT 大于等于(>=)( Y7 ?' ]' w3 v7 {, G3 W
LT 小于(<)6 y3 n: a) {" o& e! o
ELT 小于等于(<=)) Z3 [* n' S) n: t& p
LIKE 模糊查询2 S! G3 m& r0 S+ M. P
[NOT] BETWEEN (不在)区间查询' ^3 g$ y6 e! {, f# R- U
[NOT] IN (不在)IN 查询. i1 z: {2 G; L6 |% {8 K% g+ u
EXP 表达式查询,支持SQL语法
. p5 K. ?7 [! I6 K. ]4 T7 ?2 [3 {6 Y
7 u# r b) ?' d5 U" R) ~
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
0 a# C! I1 T& l8 o/ ?% tM("User")->where($where)->select();//查询status为0的记录: K) P+ E4 k) [9 {- r
% r! n$ r$ E" w3、where方法数组查询例子
' J* x$ f6 F7 S6 r1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
. q! R( X" I! Y$ o$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
1 Y, j/ b* S' ^" P/ @+ NM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
1 ]8 v+ A' ?) b4 m( \1 X+ q. l4 Z* F% ^3 c0 V
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
' ~, L9 i9 i& F1 z6 ^ v \$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
: b4 Z9 n* d9 g7 KM("User")->where($where)->select();//查询status等于0或者1的记录$ n9 M+ z/ [6 H3 R- b& A
# O% s6 H+ O( i* y3 b3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。* ?) C; [/ k% p5 c n* s
$where['createdate'] = array('EGT',"2016-04-20");' `7 ?( y2 W J
$where['status'] = '1';
) x/ T0 ^9 K! i3 s$condition['_logic'] = "AND";# S; c0 v3 A$ @! u( V+ [/ h1 |- J2 y
$map['_complex']=$where;
9 [! c7 ?4 B$ f5 `) p9 U* ^0 G$map['level']='0';% S- \4 {- B4 V5 o0 f8 W
$map['_logic']='OR';2 N% d5 n4 ~. ^* j, i0 g
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
: a: s# N7 x4 s |
|