cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
4 u+ h1 }( _; A7 y. [% C! {# y
表达式 含义
9 H2 M$ J8 h, S' K$ Q6 ^
EQ 等于(=)
9 N1 r: @' _& D
NEQ 不等于(<>)
. Z0 q9 C- c c2 m
GT 大于(>)
$ K3 k5 b* J2 n3 U k! k2 S
EGT 大于等于(>=)
+ t* q/ P$ `3 `7 @3 l0 u3 L) y: }
LT 小于(<)
, ^( ]) j" K3 l) x2 O" S, \
ELT 小于等于(<=)
% `6 x7 f, o8 R a. j. u
LIKE 模糊查询
% F: I) \$ k( p# P+ X
[NOT] BETWEEN (不在)区间查询
9 y( C$ O" k5 H1 x: ]2 _4 q/ A
[NOT] IN (不在)IN 查询
- s( R7 X5 i' R' H7 w$ ^
EXP 表达式查询,支持SQL语法
' T( T* D: D, t) t$ [0 N
# s9 G; ], E/ ~- y% Z/ m6 F
* m$ e) m% Y: U3 u, f) W8 {4 b
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
+ m9 T- e& _$ l: A- E
M("User")->where($where)->select();//查询status为0的记录
" y* j: s3 l$ d
0 \7 g0 N# Q' W$ z
3、where方法数组查询例子
$ H% q' ?6 H' c
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
1 Q( G+ N2 x) q: M, V
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
- z, l/ V! z6 u) }) V/ p0 Q
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
4 q# T4 y- \; z5 }2 j
# }0 ^" F$ J3 w9 N
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
) @1 h: t/ `% |
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
! Q1 [! C3 u" L. ] i( I4 |
M("User")->where($where)->select();//查询status等于0或者1的记录
5 I5 I R! S6 W. t9 p4 s( z
; G e/ F5 C3 X, [7 ~
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
! ^& }! l+ Y0 a7 ^$ F1 f
$where['createdate'] = array('EGT',"2016-04-20");
. w$ E+ ^; ]% I' n5 O: t8 X
$where['status'] = '1';
! l; P+ ?2 ]) S" t- i* I+ x
$condition['_logic'] = "AND";
1 U! J0 N9 v! g( K5 n/ R/ x2 ]
$map['_complex']=$where;
% u' A0 k, i) z( V
$map['level']='0';
" P, D0 E1 D; Z- g" E/ C
$map['_logic']='OR';
S5 ~6 z% l, W3 r& M! N
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
3 m( a* @% Y a& ~0 `
欢迎光临 cncml手绘网 (http://cncml.com/)
Powered by Discuz! X3.2