cncml手绘网
标题:
where查询表达式
[打印本页]
作者:
admin
时间:
2018-9-14 13:13
标题:
where查询表达式
b、表达式查询
8 G$ g- U# C4 H+ b' R6 ]
表达式 含义
& j5 J% B( J& g- x, I+ ]# ?- h
EQ 等于(=)
, O- s( f: C# B5 B0 }
NEQ 不等于(<>)
5 @+ p4 C1 t8 G6 f* M1 T e
GT 大于(>)
7 \" ]9 v; Y" k9 e2 p$ c6 z9 a
EGT 大于等于(>=)
% n, s9 T/ U( v" R8 |% K, R; X
LT 小于(<)
% p; b, A, @( G: f
ELT 小于等于(<=)
" f, w5 c6 ]( P% w
LIKE 模糊查询
. {4 w5 E0 y1 f/ G1 T
[NOT] BETWEEN (不在)区间查询
+ X8 w3 P: x' m9 |6 \; Y- ~
[NOT] IN (不在)IN 查询
6 x/ J4 `- W9 @& h: ?
EXP 表达式查询,支持SQL语法
/ \5 O& ]) K, v1 L* O0 s) {
$ I' b& [3 J8 G V
1 [& H- G. ]$ ]
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
# p$ u, [! Y) f& Z: f( K, W
M("User")->where($where)->select();//查询status为0的记录
. d3 K! N7 ~) R( I9 \! `+ }+ Q8 h
$ J" ]. O+ d& B. b5 w
3、where方法数组查询例子
5 ^- l1 Q2 @" ~
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
. d. W1 B% E3 M7 A0 t
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
$ H3 E: W' J+ E9 ~; m9 @
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
' d' D6 s2 \& W+ a9 R
1 ~- r2 _& z8 M0 i) U& {
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
" j- C# E8 g, d# ^# O9 @0 c+ s& F
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
3 z/ I) d0 e$ A5 E' E
M("User")->where($where)->select();//查询status等于0或者1的记录
' t1 Q! \9 k* J
9 o( V$ ^# v) G! G) M
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
3 Z1 x& ]3 d, b1 r+ ?
$where['createdate'] = array('EGT',"2016-04-20");
& k# R) K) G8 i4 S5 _: t% e
$where['status'] = '1';
% [& ]% x4 O" p! J( g9 U) z5 m
$condition['_logic'] = "AND";
% C, p, n7 t2 R! {8 z1 v+ l% G8 Z% n
$map['_complex']=$where;
! T# j) L* T9 I% O
$map['level']='0';
4 l' Y) H- `- @3 A# ^6 z, w, J
$map['_logic']='OR';
, L. I) j7 @3 m5 W
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
6 @2 T! ~- v$ x" |8 P' y
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2