管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询5 {+ M: P2 F b! H. w& w- a& ~
表达式 含义
3 m& J8 {- ?: W+ REQ 等于(=)" Q' i+ Z$ @4 f: k" P
NEQ 不等于(<>)6 c5 t0 S7 J5 i
GT 大于(>)% I6 @) w9 p$ E- j3 U8 |
EGT 大于等于(>=)
8 u9 Y, Q3 |& C# b) Q( XLT 小于(<)
" O8 [, v% V: c$ wELT 小于等于(<=)& H! V8 E7 t5 J4 k) s3 x* I
LIKE 模糊查询
# f3 c i( ^/ K8 A5 v9 _& a[NOT] BETWEEN (不在)区间查询
& }, l+ W' W& Y[NOT] IN (不在)IN 查询
7 g! V) I: r' l! X- F7 wEXP 表达式查询,支持SQL语法3 q$ v& k) C$ I9 g" {/ x* g
) i% `5 O+ X& m3 Z0 R1 g! M* r6 s5 g" p
! f% X! r: k. F3 r$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
& j$ {( n$ o/ U+ [* C8 JM("User")->where($where)->select();//查询status为0的记录* h; v5 ~7 V3 v, @
% H C6 i" `1 c1 ^: \( B2 l% a3、where方法数组查询例子
. i: H0 Y0 O6 S& u1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。. f1 ^* A2 A4 @" F- x' a( @" j
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
" ?4 \0 P( o5 j7 s' S8 B4 W7 ZM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录 ^; n, C9 e& B- A$ W
! W# v' X! i ]2、数组查询使用OR查询?比如,查询status等于0或者1的记录。& H* j/ o, w0 Y6 u- _
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件) z. B" I! U+ p
M("User")->where($where)->select();//查询status等于0或者1的记录: r5 K7 W7 {: @( ~/ l% `
. G8 b( n( N- E3 ?. ^7 }
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。$ u+ N, M- t3 _0 Y, P$ C9 L2 m" H9 f
$where['createdate'] = array('EGT',"2016-04-20"); d4 \$ h+ n/ ?
$where['status'] = '1';
3 d8 c6 n$ Z; V/ q- `$condition['_logic'] = "AND";& c+ c- X9 P4 D8 g1 R
$map['_complex']=$where;& E! d3 p: ?" p* a5 T6 q
$map['level']='0';
* R1 V* Q- B8 S5 T0 v$map['_logic']='OR';- `! d% e- ~! y( D$ P
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
6 E# c" \6 {1 T) _4 p |
|