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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询, I! O  N$ q5 n% g3 t
表达式        含义, u5 t7 h. u6 D
EQ        等于(=)1 e7 P* m, y' Y$ R; p4 F& m6 f0 Y
NEQ        不等于(<>)
, U4 n+ m) d/ [+ ]$ X2 IGT        大于(>)
. l! S3 n( A3 A- o4 a! iEGT        大于等于(>=)
2 t6 }5 Z+ w, {9 g7 b* ^LT        小于(<)5 V7 s+ y2 u/ a- u$ n9 D0 t
ELT        小于等于(<=)
& L) \' Q) ^, c5 L8 \$ ZLIKE        模糊查询0 F) t6 p& G# X; \+ v
[NOT] BETWEEN        (不在)区间查询
) T3 O- [$ M, }' `0 @0 G+ l[NOT] IN        (不在)IN 查询
4 `3 x, _: I" S4 t- |4 J) ?- DEXP        表达式查询,支持SQL语法+ b/ O6 W! V* ]% X5 \" Z' l

8 l8 R4 s. C: P2 i
: c& g7 X0 T5 [- f: m$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件2 t  y5 c/ K  z0 i
M("User")->where($where)->select();//查询status为0的记录& r7 x+ `+ s; t* W+ c) H
5 c6 K0 a/ h1 q7 V9 G
3、where方法数组查询例子
9 n, W* \, M6 n) K1 P9 {, v. |1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。
( A5 a, [& ^( W$ J% y7 L8 \) v7 }$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
( ]/ {) ^  l- B& P: L& I+ WM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录
1 J; W6 B7 ^- Z2 e' l8 S
* K! t; H& ~5 b6 W7 p. }: k2、数组查询使用OR查询?比如,查询status等于0或者1的记录。
+ O; c. X- n% c* R$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
- D- p8 c1 G  m) y8 C- c# NM("User")->where($where)->select();//查询status等于0或者1的记录1 |* p5 C+ e' o

6 J4 z) O  K1 T3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。8 e3 d( u8 L0 k! k
$where['createdate'] = array('EGT',"2016-04-20");: G. P/ R. V" U5 m. L7 R
$where['status'] = '1';$ a0 F* r+ |. C! S  C
$condition['_logic'] = "AND";( Y5 H6 |! m( l9 t* e  l$ Y# Z
$map['_complex']=$where;& j9 K( ^- f3 V% A% R- F) G5 R
$map['level']='0';0 D' [. w4 ]. B' D- j( {+ a
$map['_logic']='OR';
/ ]! e2 z0 T' q8 S% p, VM("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录  `& l9 ~) `; S8 g0 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-23 02:16 , Processed in 0.096884 second(s), 20 queries .

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