MySQL - 设置任何列等于一个值

标签 mysql sql conditional-statements

我有十列名为 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"等?

最佳答案

您可以使用 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, ...)

关于MySQL - 设置任何列等于一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504913/

相关文章:

typo3 - 如何在 TypoScript 中创建条件以将不同的 JavaScript 文件加载到不同的后端布局? (打字3)

arrays - 根据应用于另一个向量的条件创建向量

mysql - 按计数排序(*) 子查询

php - 在 MySQL 数据库上导入大文件

php - 针对大型数据集的 MySQL 数据库建模

c# - 从不可排序的表 SQL Server 中查询和导出

java - 如何正确安装mysqlconnecter java?

java - 从 jtextfield java GUI 将值插入到 mysql 表中

c# - 在 sql 中,存储多个有序向量/列表的最佳方法是什么?

c - 如果第一个条件通过,OR 中的第二个条件是否会执行?