MySQL - 使用Case Then End更新多个值

时间:2017-02-19 15:45:48

标签: mysql mysql-workbench

Employees表中的Job_ID列具有每行的唯一数据,我需要使用另一列的值将这些数据更新为“MANAGER”或“TELLER” FIRST_NAME如下所示,但似乎没有发生更新。 我的期望是FIRST_NAME = VIJES或UNNATH JOB_ID应该是“经理”而其他人应该是“Teller”

获得响应 0行受影响的行匹配:6已更改:0警告:0

UPDATE EMPLOYEES
SET JOB_ID = CASE
WHEN FIRST_NAME IN ('VIJES','UNNATH') THEN JOB_ID = 'MANAGER'

WHEN FIRST_NAME NOT IN ('VIJES','UNNATH') THEN JOB._ID = 'TELLER'
END
WHERE FIRST_NAME IN ('VIJES','UNNATH','VINOD','RAKESH','ANANT','MUKESH')

了解我可以针对每一行使用条件FIRST_NAME触发单个更新查询,但要查找整个表的单个更新查询。

请澄清

1 个答案:

答案 0 :(得分:0)

您应该使用的语法是将JOB_ID列分配给CASE表达式,仅此而已。目前,您正在分配CASE表达式,然后再次尝试为正在更新的列分配值。

尝试使用此查询:

UPDATE EMPLOYEES
SET JOB_ID = CASE WHEN FIRST_NAME IN ('VIJES','UNNATH')
                  THEN 'MANAGER'
                  ELSE 'TELLER' END
WHERE FIRST_NAME IN ('VIJES', 'UNNATH', 'VINOD', 'RAKESH', 'ANANT', 'MUKESH')