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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询- L" O  r. z- f
表达式        含义3 D4 l5 A" x! G8 l8 S" q6 M# x
EQ        等于(=)+ J0 P3 X0 U3 G7 K# J) M2 n; j
NEQ        不等于(<>)
* r% W& q: u  v  FGT        大于(>)( v) i  J$ A$ W3 i
EGT        大于等于(>=)) q1 `. o0 ?1 J; X2 l3 F
LT        小于(<). u) t% l* U. B3 t9 k' E
ELT        小于等于(<=)8 S. T0 O) k/ b0 b
LIKE        模糊查询' k8 g& _2 m! q* l* g. |* K
[NOT] BETWEEN        (不在)区间查询
2 `* s6 w, D5 K; v! P# j[NOT] IN        (不在)IN 查询
; D* p8 s( E# z% v  \EXP        表达式查询,支持SQL语法
3 n$ l+ l1 ~; W' r; @% L" X: Z; k. I" `+ o) Y  `$ i" E
, k/ L1 g( r* B0 C2 B
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
) w4 y2 s. i& `! D6 `M("User")->where($where)->select();//查询status为0的记录
5 E* ?* [* _. n: ?3 j( Y
' h; a1 g" e0 m8 ]% C" A0 {7 r3、where方法数组查询例子) g5 R6 L6 f4 s6 e4 b9 g. {
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
( W$ Y# ?4 F  J) ?* ]$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件5 x' C) r8 I+ \
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
+ Q6 g' \* a' p+ \0 y8 G6 ~0 X6 I  R3 k  E
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。# x; I, A& |- a
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
% B1 O  d2 L+ e) i! {2 eM("User")->where($where)->select();//查询status等于0或者1的记录
) c: t" c- G5 \' P( T+ Z% ~3 J9 S  {
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
8 C# Z1 ]) `! f* H1 ?0 ]9 L$where['createdate'] = array('EGT',"2016-04-20");  S$ n) L2 @7 K0 X
$where['status'] = '1';
/ j& E9 e, S# |9 q) q. g5 U$condition['_logic'] = "AND";
4 ^% j5 d; |5 T1 v3 ~# @+ Z$map['_complex']=$where;' @* ^' e4 d' a6 Y. ?
$map['level']='0';4 l$ _. q" G& f3 u# U
$map['_logic']='OR';8 t8 E& V2 S! ?6 X9 C. Y3 i- n
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录; e* I& }# {: C+ z/ ?2 S- B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:42 , Processed in 0.062465 second(s), 19 queries .

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