tp5mysql where多个条件_TP5 多条件whereOr查询

本文介绍了在ThinkPHP 5框架中如何进行多条件的OR查询,针对`grade=1 or class=3 or sex=2`的筛选需求,对比了TP3和TP5的不同处理方式。在TP5中,应使用`whereOr`方法代替`_logic`参数,示例代码展示了正确查询用户数据的方法。
摘要由CSDN通过智能技术生成

问题背景:最近在用ThinkPHP 5开发项目的过程中,发现根据筛选条件做or查询的时候,连贯操作不可以使用where进行条件查询了。

首先列出一个user数据表的信息:

uid

uname

grade(年级)

class(班级)

sex(性别)

1

1号

1

2

1

2

2号

1

1

2

3

3号

3

3

2

4

4号

4

2

1

5

5号

2

5

1

6

6号

1

6

2

7

7号

1

1

1

8

8号

2

3

1

9

9号

2

2

1

10

10号

3

1

2

数据表展现了10位同学的年级、班级、性别信息

现在要查询数据为

grade=1 or class= or sex=2

在TP3中想要or查询

条件可以为:

$condition['grade'] = 1;

$condition['class'] = 3;

$condition['sex'] = 2;

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

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

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

User.php

namespace app\index\controller;useapp\index\model\UserModel;classUser

{public functionindex()

{$condition['grade'] = 1;$condition['class'] = 3;$condition['sex'] = 2;$UserModel = newUserModel;$list = $UserModel->getlistwhereOr($condition);print_r($list);

}

}

UserModel.php

namespace app\index\model;useapp\common\model\CommonModel;usethink\Db;usethink\Model;class UserModel extendsCommonModel

{public function__construct(){

parent::__construct();

}protected $name = 'User';public function getlistwhereOr($condition) {$list =Db::name($this->name)->whereOr($condition)->select();return $list;

}

}

执行User.php 发现打印出来的数据就是我们要的筛选数据,

总结:TP5相比TP3中更新了很多我们经常用到的查询方式,而且写法更人性化,需要经常的去整理查看这些新方法

by as

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值