cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
, e9 y1 ], \$ {& P0 T. ^
表达式 含义
, y3 t) p5 }$ n2 q4 E1 J/ o& {
EQ 等于(=)
. S* [6 L8 g$ E) s3 s+ c2 X" H$ Z
NEQ 不等于(<>)
$ o$ o- q3 J- k2 H+ {' c% ^
GT 大于(>)
* {& W. F0 u6 b1 O1 t
EGT 大于等于(>=)
4 z; I) q4 C. m; w+ s
LT 小于(<)
$ `5 t9 R7 B# p$ g9 Z- O
ELT 小于等于(<=)
9 c5 v% \1 x# Q! g/ i" e# n4 O
LIKE 模糊查询
( _/ o" N2 V8 z+ R1 F) h! ^
[NOT] BETWEEN (不在)区间查询
' ` t" b. t7 G; f* z! `
[NOT] IN (不在)IN 查询
, @( h: N" v* y6 ~
EXP 表达式查询,支持SQL语法
6 ^8 X O7 |6 s; P- x" K
/ }' G$ F) ?: p
% D& O, U1 t$ G$ G
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
& `& {# _/ N9 {, J2 [
M("User")->where($where)->select();//查询status为0的记录
0 E @( S- A8 @; x: k5 [, F
7 d8 E( n* c1 o4 Z0 `9 m$ |4 c) q
3、where方法数组查询例子
$ J+ E% }8 o5 O2 E
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
9 l0 R+ Y7 V6 }$ m: H
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
8 A4 y. Q! c, \7 V" [
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
( t* m5 `% \! f1 J- q1 O' v, e0 X
9 s* B$ H/ r: u6 P4 `
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
4 k$ M+ t% L; X1 Z0 G
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
9 g1 y) n" ?9 R" { ?! N
M("User")->where($where)->select();//查询status等于0或者1的记录
- }3 E/ k* }# j" K7 L
; v" L, K# H4 X) d8 A0 ?& f {
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
- B8 m# w$ _% j( q( a
$where['createdate'] = array('EGT',"2016-04-20");
2 Z8 ^' T: ]( n8 S t G" D3 s
$where['status'] = '1';
, o& R% \# f3 T- F
$condition['_logic'] = "AND";
: \' j: w1 G- f3 F' W& I
$map['_complex']=$where;
2 F7 h$ C( h1 G" q8 @$ `$ S
$map['level']='0';
6 b$ Q& B# w" L% ~9 I* ?# |3 n
$map['_logic']='OR';
) U; G, a& ^" o! Y& _
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
8 L6 g* R6 |3 k# F% G/ x
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2