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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询
9 y& b. b+ f& D  Z: O( X1 e# _3 X表达式        含义
( v% T7 M4 f, w1 h$ q, ~$ L( qEQ        等于(=)
' H; k- }# A) J& DNEQ        不等于(<>)
0 \8 r6 O2 N( d3 w4 M# yGT        大于(>), Y7 ]2 ]# K* t" A- I/ ~
EGT        大于等于(>=)
* [2 a+ M: J! r6 O9 oLT        小于(<)
- d/ ^$ ]$ r- ?# `2 N3 h5 mELT        小于等于(<=)/ D% k  Q" K4 y; ?$ z" h* E) b
LIKE        模糊查询
4 O% V7 ~1 ]6 S! X[NOT] BETWEEN        (不在)区间查询: s9 f0 X' p" e% A
[NOT] IN        (不在)IN 查询
  e7 Q' M- @& f+ U8 WEXP        表达式查询,支持SQL语法( g8 W4 F+ h; \" I6 b( ]  a/ `

! w( w, `8 U0 X2 S- V1 T: G& n; y5 |, \/ a1 T, t. g2 v
$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件- q# i  c& i" `( r/ K; Y
M("User")->where($where)->select();//查询status为0的记录
" H0 t% b# }9 j6 r. s% }3 d  t. E
1 K& x  U/ \& N  N( N6 i" {3、where方法数组查询例子
4 s& L% W0 S0 Y+ W1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。/ E' a5 @9 Z$ |! V% D7 n0 I; Q
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
) k4 Y! J2 L5 E' c4 j2 cM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
9 f# U/ D$ V2 G$ _& ~7 }
2 z5 b& h  [+ T8 E# W7 a. [2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
7 A! W* Z5 _$ }3 h3 N5 E4 r$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件' v! Q& J* v& C" ^
M("User")->where($where)->select();//查询status等于0或者1的记录3 K* I9 T/ w, y& L" o

/ z! j! v, |' n; q3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。
, ]% t! B- U2 w  A" N$where['createdate'] = array('EGT',"2016-04-20");
6 y+ B5 J( i0 ?+ U0 Z- I& `$where['status'] = '1';4 ~6 a1 M8 L5 b5 r
$condition['_logic'] = "AND";7 ~: |* P* S/ d  W1 u
$map['_complex']=$where;
2 G0 k0 q  Q; S! q$map['level']='0';4 [0 r" e4 E: x
$map['_logic']='OR';
4 G3 _: ]- I8 h6 v8 |! WM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录, m8 v; u0 r( l. y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 17:37 , Processed in 0.049086 second(s), 20 queries .

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