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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询( K# X/ ~) \7 c$ g! ~" M
表达式        含义
& m' b* _$ f& V+ h) e  e; s" g$ v* eEQ        等于(=)
; F3 r# H/ l  R0 I, o1 `NEQ        不等于(<>)
: g8 z' h0 B4 X: V& E% ZGT        大于(>)# x- t! T9 L; x3 S
EGT        大于等于(>=)
  E) L$ i  R+ ^5 G3 ]; C; OLT        小于(<)
7 N9 H6 b! I) f3 }# bELT        小于等于(<=)( R; {" O7 s3 U+ T) _
LIKE        模糊查询
0 w: j; g6 m$ X9 k! `[NOT] BETWEEN        (不在)区间查询
0 g6 y, B0 A9 M[NOT] IN        (不在)IN 查询" A% ~" d% Y6 T, R3 S% _
EXP        表达式查询,支持SQL语法0 p+ P$ ?, T8 s4 N" q

! C% {9 _" z9 O4 j, L+ T3 S
# m4 `( L2 u9 O. S6 d. }% l1 m$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
1 d" j& E; T8 S: `; {M("User")->where($where)->select();//查询status为0的记录
- M5 \; M. k4 |, u- }0 B* w. Z% H. x% s5 O! Q8 h! U# C
3、where方法数组查询例子
' ~3 Q( [2 L; N) {: o+ p/ d# V: z1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。$ G6 ]$ h& }* ?8 C1 o. @
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件& x  U# Z. a- [+ M% p0 [3 {
M("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
( d+ h5 G3 q2 [
6 q$ s# n. L8 G  k5 S0 }) H9 o2、数组查询使用OR查询?比如,查询status等于0或者1的记录。! w8 a+ W6 @1 Y8 z1 P- \
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
$ `3 d/ \) k- |( M4 KM("User")->where($where)->select();//查询status等于0或者1的记录: M- Z* J( X0 \4 m7 v

) T$ ~% B1 ]1 q; H. p; k3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
7 y% r& c+ a$ W  U$where['createdate'] = array('EGT',"2016-04-20");; n9 V6 y. p0 |5 N3 C% ~
$where['status'] = '1';4 v2 ?) H8 D8 @7 a( l0 c7 a
$condition['_logic'] = "AND";6 l& ~' f4 h+ E0 A, ]1 s: @! k% a! v5 C
$map['_complex']=$where;+ e  e, M: B' Q
$map['level']='0';
/ O- E! G1 s# Q$map['_logic']='OR';
, u9 ~0 `+ \/ B* O. ?1 M" `M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录
( H7 k  d7 }" S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-20 17:43 , Processed in 0.089521 second(s), 19 queries .

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