MySQL - 设置任何列等于值

时间:2015-11-03 16:58:38

标签: mysql sql conditional-statements

我有十列名为image1,image2 ... image10,我想将一列的值更新为新值,但它只能更新一列等于我提供的值。

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

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

2 个答案:

答案 0 :(得分: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, ...)

答案 1 :(得分:0)

WHERE 子句可能是您在SQL中需要的。类似的东西:

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

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