thinkphp5.1的数据库查询问题

表设计

img

中间还有类似这种条件

$where = [
['end_time', '>', $nowtime]
];

问题:

如何查询 ke_id = 0 和 ke_id = 74(变量 $cid) 74只是举个例子 的数据 (两者条件成立一个,或者两个都成立)

需求1 查询ke_id = 0 和 ke_id = 74 的数据 select

需求2 查询ke_id = 0 和 ke_id = 74 的数据 对比表中的 reduce_amount 数值 把大的数值表的数据 find

求写法(类似这样)



 public static function CheckKeCoupon($cid){
        $nowtime = time();
        $where = [
            ['end_time', '>', $nowtime],
            ['stock', '>', 0],
        ];
        $c = Db::name('coupon')->where(['status'=>1])->where($where)->select();
        return $c;
 }

1、Db::name('coupon')->whereRaw('ke_id=0 or find_in_set(74,ke_id)')->select();
2、Db::name('coupon')->whereRaw('ke_id=0 or find_in_set(74,ke_id)')->order('reduce_amount desc')->find();

1、Db::name('coupon')->whereExp(“ke_id=0 or find_in_set(74,ke_id)”)->select();
2、Db::name('coupon')->whereExp(“ke_id=0 or find_in_set(74,ke_id)”)->order('reduce_amount desc')->find();