您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10373|回复: 0
打印 上一主题 下一主题

[thinkphp学习资料] where查询表达式

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询
( h1 m- y, S; E# A: B2 H表达式        含义
  a( w% U& A4 L0 Q2 K: [* X3 ]$ m7 HEQ        等于(=)
2 y/ k9 @- `" s/ Z0 P5 J' a8 ANEQ        不等于(<>)) R# O* D3 I, C
GT        大于(>)
) S6 O9 S* A2 `EGT        大于等于(>=)' E% O, Z: ?0 K
LT        小于(<)2 j" z: P4 K' J+ P% Y$ z" p) m$ m
ELT        小于等于(<=): f% H4 i2 R5 W( @, \0 C: e
LIKE        模糊查询9 I! j+ U' S% o8 h* _( [9 E
[NOT] BETWEEN        (不在)区间查询
0 f$ T$ Y$ a0 @% ]2 \# r8 Y[NOT] IN        (不在)IN 查询% @. S8 t" s9 I9 _: |0 [. L
EXP        表达式查询,支持SQL语法( K5 u) G2 L- `2 L% W2 z0 T

; c: J1 a, W- f8 U! D5 q& v( A5 \4 V8 d) L& u* P
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件6 z4 @/ T7 Y* Z: f3 q0 l
M("User")->where($where)->select();//查询status为0的记录
9 Z. n5 S7 V# v+ S/ Z3 k. l; d. d% t3 F- U/ C9 W& X6 q/ e
3、where方法数组查询例子4 `% _8 q& L4 T: m+ ]
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。1 H$ I) N( b8 N/ M% z
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
4 Y: V2 l' _$ Y/ J2 i! M- jM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
# ]% r$ [6 o$ {* p+ q4 A, `; G' a5 z1 r* c# v: A- t" Y( l
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
# U! P! }$ e! f: k$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
% c, W# w/ n" L9 j3 u/ Y, ]M("User")->where($where)->select();//查询status等于0或者1的记录; D+ s# l/ W% W* V5 W2 i

' T4 u* j9 m) P8 T& _* }5 T3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
; M0 \0 Y$ n% t) V: y; {$where['createdate'] = array('EGT',"2016-04-20");
+ T. K; y$ Q  j  |$where['status'] = '1';& W' T3 n! L1 ?
$condition['_logic'] = "AND";7 U2 C0 a$ u: u5 s- u& F
$map['_complex']=$where;  b* s+ Y% ^+ }+ o5 P' j
$map['level']='0';
& [/ G) Q8 U. y% @' L  Z6 s$map['_logic']='OR';0 u9 h9 s  Z% z6 ~1 F8 n* @& @
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录; S: _& a9 o. I5 n0 B/ N, `0 S. L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-9-17 03:39 , Processed in 0.122726 second(s), 21 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!