管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
b、表达式查询
# S* o; T6 W. `+ i2 s1 X% d表达式 含义
4 ~ a9 W, q" h4 tEQ 等于(=)
6 X6 {. ]0 |. Q* zNEQ 不等于(<>)! A. r3 B% l8 E% n
GT 大于(>)
$ q5 T' M7 O" t8 { MEGT 大于等于(>=), h6 L& h" Z9 ~! [4 e- q' w
LT 小于(<)
& k: m& ^4 l( m* C. U( ^" p- Z/ ]ELT 小于等于(<=)
7 t# j- N' e1 [' A7 ?LIKE 模糊查询7 i: c( M! H) Y
[NOT] BETWEEN (不在)区间查询
/ K: @: ~# m) i% S# @/ ~2 N[NOT] IN (不在)IN 查询. O* X/ D% h" V# p1 V0 Y2 h
EXP 表达式查询,支持SQL语法
# J: N H; I& Q8 j! n9 g- r6 a9 Z0 j' V7 \1 C( q( v2 M, i
0 \( o7 E. _4 R$ v# v9 f+ |* [+ z
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件# w# a7 E Z F; I) j- E
M("User")->where($where)->select();//查询status为0的记录8 ]' e5 u' q% K! N
% X' }2 } E* i/ P$ K" w4 k
3、where方法数组查询例子
4 |+ M7 l A6 i6 Q2 R8 G! A1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。% F9 ~& Q- V) |
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
$ u* A0 b- T' h% h) WM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录1 p) z# K2 F# X0 S
( [" t5 K& M" Q7 W2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
. C' `( ]( l5 s/ O1 c; o( B9 W$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
5 R! x( H/ V8 C$ ~4 tM("User")->where($where)->select();//查询status等于0或者1的记录2 ]/ P, z9 a4 U V9 v1 M7 F
* u' f" S$ S/ m7 Z$ h" S* D
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
' U- `& u9 I8 B: K `9 `5 `$where['createdate'] = array('EGT',"2016-04-20");6 h3 V8 R' \6 x5 h. o
$where['status'] = '1';
; V) Z2 C/ {: `* D3 G2 l$condition['_logic'] = "AND";$ j5 B/ g' D3 i* _0 F3 N9 s+ p. I
$map['_complex']=$where;
; d5 B3 D; {) }3 U) i$ D# i$map['level']='0';# ]% k& n2 W4 o" [6 e
$map['_logic']='OR';
7 N) G* c# X4 K+ {- i; LM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
$ n" q& @) i6 m8 i3 o) v |
|