MySql 使用 OR 更新查询

标签 mysql sql

我得到了这个存储购买的表,并且我在我的网站上为用户注册时添加了 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/

相关文章:

sql - 如何使用 PostgreSQL 9.2 计算游戏中每个级别的百分位数

sql - 准确查找文本

java - 从数据库中检索数据,将数据用作 java 方法的参数

mysql - 如何使用 Entity Framework 6 MySQL 更新记录

mysql - 如何删除基于组合两列的条目

c# - 如何检测数据库中已有数据的 SQL INSERT 错误?

PHP 未与服务器连接

mysql - 根据值选择要更新的列

mysql - 在 Perl 中工作 MySQL 查询失败

SQL SELECT 多个 INNER JOIN