Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-设置与值相等的列_Mysql_Sql_Conditional Statements - Fatal编程技术网

MySQL-设置与值相等的列

MySQL-设置与值相等的列,mysql,sql,conditional-statements,Mysql,Sql,Conditional Statements,我有十列名为image1,image2…image10,我想将一列的值更新为新值,但它必须只更新一列,该列等于我提供的值 例如,让提供的值为1,我想将其更改为字符串,如“C:/folder/subfolder” 我在想是否有一些if语句,比如“if image1=1 set image1=“C:/folder/subfolder”或者if image2=1 set image2=“C:/folder/subfolder”,等等?WHERE子句可能是SQL中需要的语句。类似于: UPDATE im

我有十列名为image1,image2…image10,我想将一列的值更新为新值,但它必须只更新一列,该列等于我提供的值

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

我在想是否有一些if语句,比如“if image1=1 set image1=“C:/folder/subfolder”或者if image2=1 set image2=“C:/folder/subfolder”,等等?

WHERE子句可能是SQL中需要的语句。类似于:

UPDATE images SET image1="C:/folder/subfolder" WHERE image1="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, ...)