【问题标题】:MySQL - Set whichever column is equal to a valueMySQL - 设置任何列等于一个值
【发布时间】:2015-11-03 16:58:38
【问题描述】:

我有十列名为 image1、image2...image10,我想将一列的值更新为新值,但它必须只更新与我提供的值相等的一列。

例如让提供的值为 1,我想将其更改为字符串,例如“C:/folder/subfolder”。

我在想是否有一些 if 语句,例如 "if image1 = 1 set image1 = "C:/folder/subfolder" else if image2 = 1 set image2 = "C:/folder/subfolder" 等?

【问题讨论】:

  • 首先,阅读this 并浏览here
  • 在存储过程中,是的。
  • 发现了一个类似的问题here

标签: mysql sql conditional-statements


【解决方案1】:

您可以使用IF 表达式。如果它与提供的值匹配,则返回新值,否则返回旧值(因此它对该列没有影响)。

UPDATE tableName
    SET image1 = IF(image1 = '1', 'C:/folder/subfolder', image1),
        image2 = IF(image2 = '1', 'C:/folder/subfolder', image2),
        image3 = IF(image3 = '1', 'C:/folder/subfolder', image3),
        ...
WHERE '1' IN (image1, image2, image3, ...)

【讨论】:

    【解决方案2】:

    WHERE 子句可能是您在 SQL 中所需要的。比如:

    UPDATE images SET image1="C:/folder/subfolder" WHERE image1="1";
    

    可能不是完整的答案,但我认为这可能有助于正确的道路。

    【讨论】:

    • 您需要对每一列重复该语句。
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多