前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP5 where数组查询(模糊查询--多个查询条件)

TP5 where数组查询(模糊查询--多个查询条件)

作者头像
php007
发布2019-10-29 15:24:26
6K0
发布2019-10-29 15:24:26
举报
文章被收录于专栏:PHP专享栏PHP专享栏

有查询条件就查询,多个查询条件,只要有查询,就增加一个查询条件

一、TP5.1版本

TP运算符

SQL运算符

例子

实际查询条件

eq

=

$map['id'] = array('eq',100);

等效于:$map['id'] = 100;

neq

!=

$map['id'] = array('neq',100);

id != 100

gt

>

$map['id'] = array('gt',100);

id > 100

egt

>=

$map['id'] = array('egt',100);

id >= 100

lt

<

$map['id'] = array('lt',100);

id < 100

elt

<=

$map['id'] = array('elt',100);

id <= 100

like

like

$map<'username'> = array('like','Admin%');

username like 'Admin%'

between

between and

$map['id'] = array('between','1,8');

id BETWEEN 1 AND 8

not between

not between and

$map['id'] = array('not between','1,8');

id NOT BETWEEN 1 AND 8

in

in

$map['id'] = array('in','1,5,8');

id in(1,5,8)

not in

not in

$map['id'] = array('not in','1,5,8');

id not in(1,5,8)

and(默认)

and

$map['id'] = array(array('gt',1),array('lt',10));

(id > 1) AND (id < 10)

or

or

$map['id'] = array(array('gt',3),array('lt',10), 'or');

(id > 3) OR (id < 10)

xor(异或)

xor

两个输入中只有一个是true时,结果为true,否则为false,例子略。

1 xor 1 = 0

exp

综合表达式

$map['id'] = array('exp','in(1,3,8)');

$map['id'] = array('in','1,3,8');

补充说明

  • 同 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。
  • between、 in 条件支持字符串或者数组,即下面两种写法是等效的:
    1. $map['id'] = array('not in','1,5,8');
    2. $map['id'] = array('not in',array('1','5','8'));

exp 表达式

上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。

exp 不仅用于 where 条件,也可以用于数据更新,如:

官方查询语法:https://www.kancloud.cn/manual/thinkphp5/135182

版本

新增功能

5.0.9

比较运算增加闭包子查询支持

5.0.4

支持对同一个字段多次调用查询方法

查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:

代码语言:javascript
复制
where('字段名','表达式','查询条件');
whereOr('字段名','表达式','查询条件');

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

表达式

含义

EQ、=

等于(=)

NEQ、<>

不等于(<>)

GT、>

大于(>)

EGT、>=

大于等于(>=)

LT、<

小于(<)

ELT、<=

小于等于(<=)

LIKE

模糊查询

[NOT] BETWEEN

(不在)区间查询

[NOT] IN

(不在)IN 查询

[NOT] NULL

查询字段是否(不)是NULL

[NOT] EXISTS

EXISTS查询

EXP

表达式查询,支持SQL语法

> time

时间比较

< time

时间比较

between time

时间比较

notbetween time

时间比较

tp5.1与tp5.0初始化控制器区别

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 风帆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 补充说明
  • exp 表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档