首页 > 其他 > 详细

tp5.1多条件组合查询

时间:2021-03-05 22:16:04      阅读:89      评论:0      收藏:0      [点我收藏+]

先说下需求:

查询某个表 is_permanent为1 或 start_time 小于等于当前时间 end_time 大于等于当前时间,再这个基础上type要等于2的数据,那这个复杂的查询条件要怎么写呢,这个就要用到tp 多条件组合查询了

官方文档:

https://www.kancloud.cn/manual/thinkphp5_1/354030

官方示例:

使用下面的多个条件组合

$map1 = [
        [‘name‘, ‘like‘, ‘thinkphp%‘],
        [‘title‘, ‘like‘, ‘%thinkphp‘],
    ];
    
$map2 = [
        [‘name‘, ‘like‘, ‘kancloud%‘],
        [‘title‘, ‘like‘, ‘%kancloud‘],
    ];    
    
Db::table(‘think_user‘)
    ->whereOr([ $map1, $map2 ])
    ->select();

生成的SQL语句为:

SELECT * FROM `think_user` WHERE ( `name` LIKE ‘thinkphp%‘ AND `title` LIKE ‘%thinkphp‘ ) OR ( `name` LIKE ‘kancloud%‘ AND `title` LIKE ‘%kancloud‘ )

善用多维数组查询,可以很方便的拼装出各种复杂的SQL语句

实现需求写法

$w = [‘is_permanent‘, ‘=‘, 1];
$w1 = [[‘start_time‘, ‘<=‘, time()], [‘end_time‘, ‘>=‘, time()]];
$ids = HomeSetModel::whereOr([$w, $w1])->where(‘type‘, 2)->column(‘set_id‘);

tp5.1多条件组合查询

原文:https://www.cnblogs.com/makalochen/p/14487671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!