使用`Like`比较值时,在select语句中使用`Case`的正确方法是什么?

时间:2013-03-20 18:47:48

标签: mysql

我有这个不返回任何内容的查询:

select
    case when Username like 'participanta%' then
        'Novice'
    when Username like 'participantb%' then
        'Experienced'
    when Username like 'participantc%' then
        'Master'
    end as 'group'
from Users;

如果Usernameparticipanta12类似,我只希望值为“新手”,依此类推。

我也尝试过这个查询,在第二个和第三个Username like之后摆脱when

select
    case when Username like 'participanta%' then
        'Novice'
    when 'participantb%' then
        'Experienced'
    when 'participantc%' then
        'Master'
    end as 'group'
from Users;

还尝试了单个用户组:

select
    case when Username like 'participanta%' then
        'Novice'
    end as 'group'
from Users;

仍然没有返回任何内容。

2 个答案:

答案 0 :(得分:2)

如果您只是更改

,那么您的第一个查询应该有效
as 'group' 

as `group`

答案 1 :(得分:0)

扩展@Mark的答案。

您的第一个案例陈述是正确的 但是,您使用as构造错误。

如果您想要转义保留关键字,则需要使用反引号`,而不是引用'

请参阅:MySQL and CASE WHEN with a range of values

对于类似的问题。