Laravel mysql,否则条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel mysql,否则条件相关的知识,希望对你有一定的参考价值。

如何使用mysql中的其他条件

这是我的代码

$couponQry = Coupon::select('*')
    ->where('generate_coupon', '=', 0)
    ->where('coupon_soft_delete', '=', 0)
    ->where('expiry_date', '>=', date('Y-m-d'))
    ->whereRaw("(coupon_limitation=1 AND coupon_usage>coupon_used) OR (coupon_limitation=0 AND coupon_used>=0)");

$couponData = $couponQry->get();

coupon_limitation | coupon_usage | coupon_used | generate_coupon
1                    1                 1           0
0                    0                 5           0

这里我只需要获得第二行。因为coupon_limitation为1,如果coupon_limitation为1,则coupon_usage应该大于coupon_used(活动优惠券,无限使用优惠券)。如果coupon_usage和coupon_used相等,且coupon_limitation 1个优惠券有效期结束(已归档的优惠券,限制使用优惠券)。

如果coupon_limitation为0,则无需检查coupon_used和coupon_usage(一直有效,直到到期日结束)。谢谢

答案

我确实喜欢这个并且工作正常

$couponQry = Coupon::select('*')
    ->where('generate_coupon', '=', 0)
    ->where('coupon_soft_delete', '=', 0)
    ->where('expiry_date', '>=', date('Y-m-d'))
    ->whereRaw("CASE WHEN coupon_limitation=1 THEN coupon_usage>coupon_used ELSE coupon_usage>=0 END");

$couponData = $couponQry->get();

以上是关于Laravel mysql,否则条件的主要内容,如果未能解决你的问题,请参考以下文章

laravel orm where 条件中 mysql函数 怎么用

laravel特殊功能代码片段集合

Laravel 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?

laravel orm where 条件中 mysql函数 怎么用

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

Laravel Mysql 查询选择条件