前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP5 多条件whereOr查询数据库

TP5 多条件whereOr查询数据库

作者头像
php007
发布2019-11-01 09:34:55
8.1K0
发布2019-11-01 09:34:55
举报
文章被收录于专栏:PHP专享栏PHP专享栏

一.最常用的Where 条件表达式格式为:

代码语言:javascript
复制
$map['字段名']  = array('表达式', '操作条件');

其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:

和 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。

between、 in 条件支持字符串或者数组,即下面两种写法是等效的:$map['id'] = array('not in','1,5,8');

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

二.在TP3中想要or查询

条件可以为:

$condition['grade'] = 1;

$condition['class'] = 3;

$condition['sex'] = 2;

$condtion['_logic'] = 'OR';

$list = M(‘user’)->where($condtion)->findall();

三.下面是TP5中查询方式

在TP5中尝试用where去这么查询发现一直在报错,查了手册之后发现TP5取消了_logic作为查询方式,而是新增了whereOr方法,

代码语言:javascript
复制
        $condition['grade'] = 1;
        $condition['class'] = 3;
        $condition['sex'] = 2;
        $UserModel = new UserModel;
        $list = $UserModel->getlistwhereOr($condition);

四.exp 表达式

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

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

  1. $data['counter'] = array('exp','counter+1');

五. where map 多条件查询

  1. $map1=['name', 'like', 'thinkphp%'],
  2. $map1=['title', 'like', '%thinkphp'],
  3. $map2=['name', 'like', 'kancloud%'],
  4. $map2=['title', 'like', '%kancloud'],
  5. $this->whereOr([ $map1, $map2 ])
代码语言:javascript
复制
where('name','like','thinkphp%');

查询条件就变成 name like 'thinkphp%'

六.另外,V5.0.5+版本开始,like查询支持使用数组

代码语言:javascript
复制
where('name','like',['%think','php%'],'OR');
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.最常用的Where 条件表达式格式为:
  • 四.exp 表达式
  • 五. where map 多条件查询
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档