小编典典

MySQL CASE如何工作?

mysql

我知道SQL的CASE语法如下:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

但是,我不了解它是如何工作的,可能是因为我正在考虑将其视为if声明。

user_role例如,如果我在表中有一个字段,其中包含诸如“经理”,“兼职”等名称,那么如何role_order根据角色生成一个具有不同编号的字段。在此示例中,“如果user_role
=’经理’,则role_order = 5”。

请注意,我正在寻找一个 教男人如何钓鱼的方法, 而不是 给男人一个钓鱼的方法


阅读 302

收藏
2020-05-17

共1个答案

小编典典

CASE更像是switch语句。您可以使用两种语法。首先,您可以使用所需的任何compare语句:

CASE 
    WHEN user_role = 'Manager' then 4
    WHEN user_name = 'Tom' then 27
    WHEN columnA <> columnB then 99
    ELSE -1 --unknown
END

第二种风格是当您只检查一个值时,它更简洁:

CASE user_role
    WHEN 'Manager' then 4
    WHEN 'Part Time' then 7
    ELSE -1 --unknown
END
2020-05-17