我得到了这个存储购买的表,并且我在我的网站上为用户注册时添加了 3 天的免费试用。
我有每 24 小时运行一次的 cron 作业,但是如果用户在有效试用期间购买就会出现问题。
我的查询:
UPDATE subscriptions SET days = days - 1 WHERE days > 0 AND (package="1month" OR package="3month" OR package="trial")
因此,如果用户获得了有效的试用版和有效的 1 个月成员(member)资格,则此查询将更新他的试用版和 1 个月订阅,它应该一次只更新一项订阅。
Sqlfiddle:http://sqlfiddle.com/#!2/74fb6/1
我该怎么做?
最佳答案
既然您说过一次应该只更新一个订阅
,您应该检查表中的UID
以及package
(尽管目前 UID
看起来不像是唯一列,但它应该是)
UPDATE subscriptions
SET days = days - 1
WHERE days > 0
AND
package = "1month"
AND
UID = 1
关于MySql 使用 OR 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24125607/