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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询+ U* t) _# C$ h
表达式        含义
8 Q" Q- G& M+ G4 y2 }5 @5 EEQ        等于(=)
7 F8 B( ~) v" O. @! |9 hNEQ        不等于(<>)
0 E8 b/ S; s1 f9 EGT        大于(>)
3 l1 g2 r& m: W* C* YEGT        大于等于(>=)+ g) G( k5 [1 F& k0 v; g* [2 K% @
LT        小于(<)
, C. k+ S( j5 \( bELT        小于等于(<=)  @) a1 \8 @; u  j+ O; k
LIKE        模糊查询) t/ {; a9 f1 o7 @8 ?' u
[NOT] BETWEEN        (不在)区间查询' f0 X; t0 p7 I" F8 B
[NOT] IN        (不在)IN 查询
2 m% t7 s! t- Q! k1 F% rEXP        表达式查询,支持SQL语法0 B, o/ n# p' D" b
8 i0 b* T, k) a

$ r1 @5 Y# s! v/ U$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件8 }( [) |* m- [2 {3 S+ X  X
M("User")->where($where)->select();//查询status为0的记录4 Z; ]0 }1 y+ i* K8 @1 ^9 R* G/ n- q# w2 L

# r* ^9 @" f) D3、where方法数组查询例子
5 V# \0 |" C$ B  W7 _2 Z  g" p1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
4 A) }" N4 ^) ?5 e+ X6 e$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件  T+ o  `% m- b% R) q% C6 O4 A
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
8 i7 M) S: `1 U5 g- m" K- s1 G7 n  D: _& x7 }
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
6 O* E9 j$ ~4 l$ @0 ?7 @$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
5 q/ k8 A( z8 w7 ?  r& i. s+ `M("User")->where($where)->select();//查询status等于0或者1的记录
" x5 z' R* V) t' x6 m- g% c4 i% Z0 h1 [5 a5 ~
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
  x8 G2 w$ d: e$where['createdate'] = array('EGT',"2016-04-20");0 A0 D2 `& |( |6 L  \; `3 [8 F, i
$where['status'] = '1';3 P8 R1 U1 f* p- O
$condition['_logic'] = "AND";$ V) X2 O8 p! R  [1 Y2 z4 B
$map['_complex']=$where;& m' u" _# L/ V+ y9 {6 N; X) s
$map['level']='0';
5 \2 v2 L! V/ O, L5 B$map['_logic']='OR';$ R* y9 ?% r6 X
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
, \( o4 s6 U: I5 q8 P: X, Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:41 , Processed in 0.076435 second(s), 19 queries .

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