【问题标题】:MySQL - Update Multiple Values using Case Then EndMySQL - 使用大小写更新多个值然后结束
【发布时间】:2017-02-19 15:45:47
【问题描述】:

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

获得响应,因为 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 为每行触发单个更新查询,但为整个表寻找单个更新查询。

请澄清

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    您应该使用的语法是将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')
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2018-09-27
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多