cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
. \" G" |% N+ k- P
表达式 含义
) q6 | X7 E5 T6 h
EQ 等于(=)
& j8 h# A6 e( g0 ^
NEQ 不等于(<>)
+ Q, @+ b- u" [! [
GT 大于(>)
* D- R+ b1 q5 R; c
EGT 大于等于(>=)
+ g# b. ]; _: j$ e, a4 U% ~/ [2 s( R% z
LT 小于(<)
; S' B# `# b4 d: q& y9 w& J5 o0 V4 E
ELT 小于等于(<=)
2 v9 Y* r( v# @( o1 V- B
LIKE 模糊查询
5 o- x3 V' Y6 a' ?2 X+ n
[NOT] BETWEEN (不在)区间查询
! b( j a) d- _7 |* j# ~
[NOT] IN (不在)IN 查询
3 ?+ q& F1 i2 D* b. w+ W
EXP 表达式查询,支持SQL语法
! W+ d1 C9 t1 J) @1 ~8 c n
- P& E3 O" I& I9 q3 l* O- `3 X
T2 C9 \. S3 H' o
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
8 p7 A, F/ v( V- c8 C: G8 [5 Y U& o
M("User")->where($where)->select();//查询status为0的记录
2 @- m6 J6 Z9 P, S" C, Q5 ?% l
) Z; X, B! n# j/ ]
3、where方法数组查询例子
# a4 H3 V6 u! i$ U+ X4 p
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
, q( D0 a8 M9 H1 c0 k
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
1 R# y5 n, g, {: C x" ]5 n' R' r
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
; D' }2 Q# i/ @. q$ [
( s2 W/ e* R& S* w
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
- I H. @& F z2 [8 r
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
5 B4 { J; v& T; U1 r/ V. p
M("User")->where($where)->select();//查询status等于0或者1的记录
) K7 O- \* \, c
7 a+ s# [3 T, n& k/ c8 a
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
1 v v/ v$ j1 A8 w
$where['createdate'] = array('EGT',"2016-04-20");
/ F& \- \) T1 p5 W8 u: T* q0 l
$where['status'] = '1';
% }( q+ }& O5 I4 V L9 J! d$ L2 E
$condition['_logic'] = "AND";
# v* J8 w, X( ~3 Z9 U1 e
$map['_complex']=$where;
. B2 f- @4 K, f7 Y& L U" R
$map['level']='0';
7 J* S& Z! }) I, u$ W
$map['_logic']='OR';
+ D8 L- f% w6 H6 v' [
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
! c/ }6 |1 i& W6 w. N, j
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2