cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
9 O- P2 j6 [$ C' `1 e6 R$ _
表达式 含义
- m3 n' I8 Z& m- K! r
EQ 等于(=)
. g5 F0 c9 v0 n" N% z7 j8 s
NEQ 不等于(<>)
- Q# h+ b `+ J2 D0 @( c
GT 大于(>)
5 M1 W3 Z4 d. u' G) u1 t
EGT 大于等于(>=)
7 v0 R/ n% l4 s2 _, h8 P
LT 小于(<)
# z" c0 D+ Y" w0 l* O
ELT 小于等于(<=)
9 l6 g5 k" N: u4 v b8 I, o0 d- B
LIKE 模糊查询
( v& U1 M5 J: t T
[NOT] BETWEEN (不在)区间查询
2 t2 ?- ]' J V/ V+ ]. ~) r% @" y
[NOT] IN (不在)IN 查询
# x+ V: w- y/ l$ [- P! c
EXP 表达式查询,支持SQL语法
1 ~7 I' H4 i* ^; ~9 Z8 _
( f4 f$ l2 \3 R9 W6 O' Y w
( r% ?: {5 V2 p1 L$ Z4 P* }' W+ V
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
% u8 H2 ^, F$ D$ m: q: d# o1 B
M("User")->where($where)->select();//查询status为0的记录
$ r( q0 R& e" t* N$ \
0 G- p' s. N2 K# [
3、where方法数组查询例子
* k% g* U X' A n6 Y- ]
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
+ I% m' X, N& J9 p- I3 M
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
& q: {# N/ N5 x+ y, O
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
2 P: ? j: ?! c4 `
0 n6 @6 t) f6 A; h3 d6 J
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
H" k8 D3 [- X2 V' M; _8 M/ x
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
2 Z7 \5 P, Z! O) j7 R2 F1 f [. I: ~
M("User")->where($where)->select();//查询status等于0或者1的记录
0 y& t+ }" B; o" g
' O+ r& o8 X8 I* ?$ P. l. l8 j
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
+ Y6 A6 \; C; \6 x- k: K$ |6 K
$where['createdate'] = array('EGT',"2016-04-20");
4 O9 v, f5 n4 A
$where['status'] = '1';
* d7 ]7 p$ n+ N' j( L* e# |1 @
$condition['_logic'] = "AND";
" K* a, F% y2 M) o5 y6 ?3 {
$map['_complex']=$where;
9 G) a" P) D. a# B
$map['level']='0';
! h5 f0 C1 C4 @' h9 j/ J
$map['_logic']='OR';
# L6 {- x( |3 h/ q: O4 x: ^
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
4 ^7 B5 o2 H, q% N
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2