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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
b、表达式查询
3 K. ?/ l2 i- p( G/ |' T表达式        含义0 Q' ]* m7 Z% x6 l7 f2 k) |
EQ        等于(=)
% `* n; G9 q) s0 uNEQ        不等于(<>)( F0 B& d5 q6 }  r0 k
GT        大于(>)
8 U) M" o6 @6 w5 I( O" a. gEGT        大于等于(>=)
/ H* L! m& p* U* [LT        小于(<)
# J# R1 M2 G* U" D6 S1 l2 g6 V4 cELT        小于等于(<=)
& O/ y* z9 K9 T/ Q0 B8 n1 V' S' Z) A' WLIKE        模糊查询
5 \  g; {( p0 m- L) X! j6 A$ p[NOT] BETWEEN        (不在)区间查询9 L. [8 e+ E; T! l4 O+ ~
[NOT] IN        (不在)IN 查询; r- d  C) V/ H' V
EXP        表达式查询,支持SQL语法
) y, k; H: b8 u9 w" ~& `5 M  ~; w1 T7 `  K& U0 g

1 k- h/ ~, z) V5 w$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
3 x  s3 I$ E% C& ~  o0 UM("User")->where($where)->select();//查询status为0的记录) A6 n% U, `6 F

; f. a9 o2 h& A% {1 X2 N# }- T) e3、where方法数组查询例子3 T$ e; ~" @/ J1 q5 p
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。6 Z" @5 i8 f3 N( n6 j' E; L
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
' P" y. \* `0 i5 R2 I8 i3 AM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录3 Q  x; s, o  I0 W, U
8 C* ^: e4 P( V' _
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。. M* [6 h, n& m9 {$ T$ e
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
  |& j- L9 [! S( S3 _M("User")->where($where)->select();//查询status等于0或者1的记录$ {8 l; j! p5 w- ^; p: n
8 V9 L% R3 K& F# r( ]9 b
3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
% f5 x& `  B' u9 D7 m+ i5 g6 l0 t8 u, t$where['createdate'] = array('EGT',"2016-04-20");
) j4 A7 R9 X/ A$where['status'] = '1';& ^. ~+ ^# ?# B' A! B
$condition['_logic'] = "AND";
& t9 r) R! R- o5 s9 a! ?: ~6 L$map['_complex']=$where;
6 _9 k/ \0 e' v% J$map['level']='0';
6 u0 ^$ ~& G! H1 p8 l$ f) V$map['_logic']='OR';
; |$ f7 g+ [, i5 G% fM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录- q* U9 x, N& j0 g* B+ }3 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-20 00:32 , Processed in 0.067776 second(s), 20 queries .

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