【问题标题】:MySQL IF Statement Updating MySQL ColumnMySQL IF 语句更新 MySQL 列
【发布时间】:2014-11-11 14:14:41
【问题描述】:

您好,我在使用 mysql 时遇到问题,我不太擅长 mysql,但我想每分钟更新一列,所以我正在编写一个事件以每分钟更新一列,但我的代码有问题?

SELECT * FROM resources

IF wood < warehouse THEN
    UPDATE `resources` SET `wood`= wood + 10
ELSE
    UPDATE `resources` SET `wood`= wood
END IF;

IF stone < warehouse THEN
    UPDATE `resources` SET `stone`= stone + 10
ELSE
    UPDATE `resources` SET `stone`= stone
END IF;

IF metal < warehouse THEN
    UPDATE `resources` SET `metal`= metal + 10
ELSE
    UPDATE `resources` SET `metal`= metal
END IF;

我真的希望你能做 if 语句,因为我想更新木头、石头、金属但又不超过仓库空间限制?有什么线索吗?

【问题讨论】:

  • 问题不是很清楚。
  • 为什么您的ELSE 案例是?他们什么都不做。
  • but not have it goes over the warehouse space limit? 是什么意思? o.O
  • 对不起,我可能没有去清除,我正在制作一个游戏,他们每分钟获得资源,那里的仓库只能容纳一个窗帘数量,比如说 1000,每分钟他们得到 10 个木头,当有木头时容量达到 1000 我不希望它再运行更新脚本,这样它就不会超过仓库限制,直到他们建立另一个仓库。

标签: php mysql if-statement


【解决方案1】:

MySQL 在UPDATE 语句中支持IF 条件。您的陈述可能如下所示:

UPDATE  `ressources`
SET     `wood` = IF(wood < warehouse, wood + 10, wood),
        `stone` = IF(stone < warehouse, stone + 10, stone),
        `metal` = IF(metal < warehouse, metal + 10, metal);

【讨论】:

  • 是的,这正是我想要的,谢谢你已经坚持了好几天哈哈。
【解决方案2】:

你在寻找这样的东西吗?

UPDATE `resources` 
SET `wood`= IF(wood < warehouse, wood + 10, wood),
stone = IF(stone < warehouse, stone + 10, stone),
...;

【讨论】:

    猜你喜欢
    • 2012-08-29
    • 2013-05-28
    • 1970-01-01
    • 2012-04-12
    • 2016-01-11
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多