cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
- U s' k( y( J5 g
表达式 含义
$ S8 s" e3 x3 L* G" l! b
EQ 等于(=)
' f, M1 ? d) K9 Z% W
NEQ 不等于(<>)
2 }9 \# C9 D) G( _4 P* Q" I0 s
GT 大于(>)
( z! u" B6 {0 L; y0 @* H+ Y( @
EGT 大于等于(>=)
8 v: }, e) F% ^3 B$ P
LT 小于(<)
8 M! E* [# S9 w' M& \9 K
ELT 小于等于(<=)
' S9 e6 O2 X% l$ j! C, c* g x |: E% G
LIKE 模糊查询
: O$ R; z$ Q" f6 }* M: p% U s
[NOT] BETWEEN (不在)区间查询
3 _+ B8 p% c! P' H4 ~, v3 v8 T
[NOT] IN (不在)IN 查询
0 b7 r+ C. m8 j$ }7 R
EXP 表达式查询,支持SQL语法
" D( p1 w m) W0 c" i+ L% w" i8 K
1 ^' w& P: U+ i/ X* \# ~
# R- x w3 r/ C( e5 t3 O
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
/ H: e3 c% j; F1 p3 V4 J; A7 v
M("User")->where($where)->select();//查询status为0的记录
& l& i- R* N& M7 y0 W, \! y
: m) k6 p' s$ N! x7 K* O
3、where方法数组查询例子
' }+ ?9 s1 ?0 s5 K" a5 J
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
" k3 c, ]- @$ q( |. N; X7 j1 v
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
8 @( U; H! _( X9 X6 Z
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
& |7 t! B; N. Y
1 n3 ^% u Y$ a" r* G. s& N
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
' u% h% R( A! b5 j
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
2 }# X* j6 C2 P3 s! P6 y1 q* b
M("User")->where($where)->select();//查询status等于0或者1的记录
N5 W9 ^ @" t2 T
8 k% j; H/ u5 {+ ?& j. f! D3 h
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
' L& Q3 V. R2 F7 J8 F3 j* e
$where['createdate'] = array('EGT',"2016-04-20");
" ], Q6 t& F1 M0 R) [" f( o K
$where['status'] = '1';
; b. v- [* L: V
$condition['_logic'] = "AND";
! D7 O7 G$ x# L( V0 s
$map['_complex']=$where;
8 z1 ~4 Z% h2 R2 T' y9 g
$map['level']='0';
3 F L9 y7 j7 x) m# w+ C) b
$map['_logic']='OR';
% K& B: h. k1 N9 o7 k- ~
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
9 n9 f& T2 \& l1 k
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2