【PHP】where和whereOr一起复杂查询示例

在ThinkPHP 5 中,wherewhereOr 方法可以一起使用以实现复杂的查询条件。以下是一个示例:

php 复制代码
// 接收的参数
$param = $this->request->param();

// 实例化
$query = new UserModel();

// 关联表
$query->with(['collect' => function($collect_query) use ($user_id) {
    $collect_query->field('id,user_id');
    $collect_query->where('user_id', user_id);
}]);

// 查询条件
$query->where(['status' => 1])

// 可筛选逗号分割的
$query->where("FIND_IN_SET({$user_id},parent_ids)")

// 价格区间最小值
if(isset($param['min_money']) && is_numeric($param['min_money'])){
    $query->where(function ($query) use ($param) {
        $query->where('price_min', '>=', $param['min_money'])->orWhere('price_max', '>=', $param['min_money']);
    });
}

// 价格区间最大值
if(isset($param['max_money']) && is_numeric($param['max_money'])){
    $query->where(function ($query) use ($param) {
        $query->where('price_min', '<', $param['max_money'])->orWhere('price_max', '<', $param['max_money']);
    });
}

// 查询结果
$list = $query->field(TaskModel::HALLLIST)
    ->order($sort)
    ->select();
相关推荐
TDengine (老段)几秒前
TDengine 在智能制造领域的应用实践
java·大数据·数据库·制造·时序数据库·tdengine·涛思数据
男孩李13 分钟前
浅谈PostgreSQL 模式(SCHEMA)
数据库·postgresql
TG:@yunlaoda360 云老大18 分钟前
如何在华为云国际站代理商控制台进行基础状态核查的常见问题解答
数据库·华为云·php
CeshirenTester31 分钟前
Cursor自动调试代码实战教程
数据库·oracle
老马952732 分钟前
事务工具类
数据库·后端
小张是铁粉42 分钟前
oracle 数据库学习之体系结构(1-4章)
数据库·学习
TH_144 分钟前
22、oracle导入数据,sys_user表数据错误
数据库·oracle
严文文-Chris1 小时前
【向量数据库到底是什么?】
数据库
老马聊技术1 小时前
HBase单节点环境搭建详细教程
大数据·数据库·hbase
子夜江寒1 小时前
Python 操作 MySQL 数据库
数据库·python·mysql