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 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?
laravel orm where 条件中 mysql函数 怎么用