cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
, d w& Q7 H7 M' o& y' r
表达式 含义
2 w% J" [2 e. f
EQ 等于(=)
3 y! H* ~, b' C; z
NEQ 不等于(<>)
, }# L6 }& h8 G$ Q" |+ v
GT 大于(>)
# x: B$ j& j7 i0 j# w" e" s6 A
EGT 大于等于(>=)
! V9 C# V0 S( B$ @$ Y. P
LT 小于(<)
1 k# P! e( n7 ^" \$ K) f! k
ELT 小于等于(<=)
; `* Z% C% N0 `, W- G
LIKE 模糊查询
/ h5 s+ Y& M: c- b8 c
[NOT] BETWEEN (不在)区间查询
3 I; i" Z9 I( \$ L( {$ g6 O
[NOT] IN (不在)IN 查询
7 t5 Q5 l/ s" ^8 P1 K6 H7 E! K
EXP 表达式查询,支持SQL语法
) f6 G, {: ^- k% n# u
$ m. }: T A( X8 h# Y, `! p1 I5 X" f2 _
+ S7 W: {* i) U
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
/ H5 R1 I* Q7 d1 {
M("User")->where($where)->select();//查询status为0的记录
2 w+ c% M4 V1 ?0 y. r$ T
* S7 ?. p& h0 x: z5 Q- }
3、where方法数组查询例子
% U; N" I# q6 P) L. O2 v3 J0 x9 i7 R
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
, F" W1 O' r( c
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
4 H- m3 F' z1 v2 ~0 A
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
2 P0 L# h) E i8 F7 J5 M1 k
5 e7 I# _' E2 ~% D# l; l) M3 [
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
0 a6 u1 @4 x! v0 e$ c) ^6 t
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
' n6 \+ t8 H7 p% o8 U& C; O
M("User")->where($where)->select();//查询status等于0或者1的记录
, Y5 b$ @% p- g
# R4 f! |: P! q
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
! B4 S: ~- I- S9 X- E9 s d
$where['createdate'] = array('EGT',"2016-04-20");
* u% ~' }! b. q3 d- Z
$where['status'] = '1';
" L. O. q w+ J* w+ p1 `( R# X1 c2 p
$condition['_logic'] = "AND";
+ d% r+ ]( m+ P2 C
$map['_complex']=$where;
' K) q4 r( N& j( t2 |
$map['level']='0';
" J& k/ n1 ^4 ]' `9 H
$map['_logic']='OR';
, z7 _" s3 q) m- ?, i6 }
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
8 ~5 G, k) t& F: s: J' V
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2