mysql - 无法通过一个查询更新多个记录(CASE/WHEN))

标签 mysql sql sql-server sql-update case

我正在尝试使用以下查询更新 SQL 表中几列的多条记录。

(我希望用 A1 更新 A,用 B1 更新 B,用 C1 更新 C,等等)

UPDATE Employee 
SET CASE WHEN name ='A' then  'A1' END 
    CASE WHEN name ='B' then  'A2' END 
    CASE WHEN name ='C' then  'A3' END
    CASE WHEN name ='D' then  'A4' END 
    CASE WHEN name ='E' then  'A5' END 
    CASE WHEN name ='F' then  'A6' END 
    CASE WHEN name ='G' then  'A7' END 
    CASE WHEN name ='H' then  'A8' END 
    CASE WHEN name ='J' then  'A9' END 
    CASE WHEN name ='K' then  'B0' END 
    CASE WHEN name ='L' then  'B1' END ,
    CASE WHEN Category = 'recrods' THEN 'records' END ,
    CASE WHEN featureID ='140' then 'CV5' END
    WHERE School = '5000' 

出现错误:关键字“CASE”附近的语法不正确。当然,我在这里遗漏了一些东西。

请帮帮我。非常感谢:)

最佳答案

set 之后,您首先需要一个列。也许:

UPDATE Employee 
    SET name = (CASE WHEN name ='A' then  'A1' 
                     WHEN name ='B' then  'A2' 
                     WHEN name ='C' then  'A3'
                     WHEN name ='D' then  'A4' 
                     WHEN name ='E' then  'A5' 
                     WHEN name ='F' then  'A6' 
                     WHEN name ='G' then  'A7' 
                     WHEN name ='H' then  'A8' 
                     WHEN name ='J' then  'A9' 
                     WHEN name ='K' then  'B0' 
                     WHEN name ='L' then  'B1'
                     ELSE name
                 END),
        category = (CASE WHEN Category = 'recrods' THEN 'records' ELSE category END),
        featureID = (CASE WHEN featureID ='140' then 'CV5' else featureID END)
    WHERE School = '5000' ;

关于mysql - 无法通过一个查询更新多个记录(CASE/WHEN)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456641/

相关文章:

php - Google 饼图和 PHP

mysql - 在不停止 Docker 容器的情况下停止 Docker 中的 MySQL

mysql - GenerationTarget 遇到异常接受命令 : Error executing DDL: Standalone JPA app

sql - Oracle SQL 使用空字符串更新 NOT NULL 列

mysql - 查看重复记录和多个where子句错误

mysql - 如何合并两个表以获取MySQL中不同表的结果

mysql - 计算油耗

PHP PDO 使用 SSL 连接到 MS SQLServer Express

sql-server - MS SQL - 使用几何数据类型查找距离是否明显更快?

sql - 计算SQL中两个字符串之间相似词的个数