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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-14 13:13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
b、表达式查询& t9 ^6 L4 d/ I% W9 _
表达式        含义0 H" O8 S% S/ i1 N7 q: E- \
EQ        等于(=); g! K; A: d& M' h/ @
NEQ        不等于(<>)
: O$ p7 Z) B) D2 k8 U4 nGT        大于(>)$ G. s' n# L2 A9 \; H% w
EGT        大于等于(>=)
8 e/ P3 }2 j0 c: j( `: L! LLT        小于(<)- I. X# T+ b; H# e6 }
ELT        小于等于(<=)
  [( {( j" }% t8 |/ vLIKE        模糊查询8 c( f% [+ S. ?
[NOT] BETWEEN        (不在)区间查询- a$ y, l& I9 a7 U, a" g3 A& z9 g% g& U
[NOT] IN        (不在)IN 查询+ v. ]6 T0 E/ y/ W6 Z
EXP        表达式查询,支持SQL语法# M$ g* n* h1 v0 ~9 b8 K$ g; z  I/ v

" H0 a9 g" ?; y2 W% F+ o
4 r/ `* a: m5 X; n6 R$where['status'] = array("eq",0);//字段就是数组的下标,值就是对应的条件
" U8 M; ]  Q4 JM("User")->where($where)->select();//查询status为0的记录
9 n0 [+ Z8 A( z! z6 u1 e1 T  _+ {8 i, q: o& G2 ~, H5 K, @
3、where方法数组查询例子* h) f  ^2 ~/ F
1、如何使用数组实现同一字段多个条件?比如,查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录。& m" h  ?" B8 T1 o
$where['createdate'] = array(array('EGT',"2016-04-20"),array('ELT',"2016-04-23"));//使用一个二维数组就可以解决同一字段多个条件
0 X% W- Y' L- s+ I# v/ rM("User")->where($where)->select();//查询createdate大于等于2016年4月20日并且小于等于2016年4月23日的记录: p+ O3 ]1 T  o0 o/ j5 k% |
7 F3 s7 v/ X# A7 A' P" p5 J- `4 l
2、数组查询使用OR查询?比如,查询status等于0或者1的记录。* w1 n8 _# S& m( W
$where['status'] = array(array('EQ',"0"),array('EQ',"1"),"OR");//使用一个二维数组就可以解决同一字段多个条件
; j0 W( F* e1 U8 y' pM("User")->where($where)->select();//查询status等于0或者1的记录
, A; ?- ~. k9 e3 S6 j
4 @! E- N3 G! H2 P1 U0 C% ?  n. G3、多个条件里既有AND又有OR的数组查询?比如,查询createdate小于等于2016年4月20日并且status为1或者level为0的记录。5 {& B; ]% Y$ k, J2 ~" I
$where['createdate'] = array('EGT',"2016-04-20");! _% f. S, g% E5 b& ]9 A
$where['status'] = '1';
1 L7 U% j/ G) x% v4 L' d; A! C; Z9 g$condition['_logic'] = "AND";
; F, @, U+ {- M' ^  d. s$map['_complex']=$where;4 C( f- q5 u# D* J' u% ]
$map['level']='0';: X( c8 ?3 t- {2 H
$map['_logic']='OR';2 F% F4 M1 t. |( J6 i
M("User")->where($map)->select();//查询createdate小于等于2016年4月20日并且status为1或者level为0的记录  U: z# M7 L; [8 }0 P2 D8 m$ B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-19 15:49 , Processed in 0.066947 second(s), 19 queries .

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