cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
[) ?$ G7 P" r
表达式 含义
s' [* z* o8 G4 x" I6 w
EQ 等于(=)
# r" u ?6 k4 w$ l, R
NEQ 不等于(<>)
3 T! R. a' K4 u, x( s$ ?
GT 大于(>)
/ B8 O0 T ^; C& t' m( |9 P
EGT 大于等于(>=)
4 a2 Q3 S; M+ ?7 T6 [! q
LT 小于(<)
7 U" O0 O% b; V( i- a; v; v
ELT 小于等于(<=)
9 G/ P' V9 i1 @1 d0 e' ]% U- r
LIKE 模糊查询
4 K& j( U( J1 C2 d1 N5 W
[NOT] BETWEEN (不在)区间查询
5 J9 F4 ~/ a8 b& y9 y7 B) F# F
[NOT] IN (不在)IN 查询
* k+ {" w# \5 a3 }; x
EXP 表达式查询,支持SQL语法
- t1 b& F, y4 N, M* r' ~" m( I
, w+ y! Z: E; r& l- L) ~
! ~1 M$ Z; V3 C' Q+ k- g# ~' p
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
% d8 b. y9 B5 D2 B, r# V; d7 d2 b
M("User")->where($where)->select();//查询status为0的记录
) c( Z0 x- }$ s! F3 b4 R) i: r
. Y3 u' U# A; ^* l4 `0 x
3、where方法数组查询例子
& A+ A/ Y' F C s s- i$ f7 ]7 U/ @
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
; c( v- E* D- J5 W# W/ q3 D
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
3 W5 E+ @7 p5 m4 ? s! j! g) O
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
: V0 `# \3 u+ ^2 z# `
- B' R, k& v" U; g' N8 I }( ~
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
0 r& b w6 L$ L6 q* C( q
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
" ^& M$ u" ?8 x
M("User")->where($where)->select();//查询status等于0或者1的记录
# f9 p: E, a8 h% W
. S0 v( Q% C' E0 p. i: Y
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
2 b9 `; T( t( J; t
$where['createdate'] = array('EGT',"2016-04-20");
- H) c3 H6 W: s& J
$where['status'] = '1';
6 V, V7 p/ k! |$ U
$condition['_logic'] = "AND";
) q, U! c. q& {' E" e
$map['_complex']=$where;
6 K8 a' m! \6 Q
$map['level']='0';
/ g: z' O2 M- a# [$ X& |4 y
$map['_logic']='OR';
1 k: i" _+ ^1 J
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
, S! |# z' ^6 ]0 A3 M* H9 k4 y
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2