0

何も返さない次のクエリがあります。

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;

Usernameのような場合、値を「初心者」にしたいだけですparticipanta12

私はまたUsername like、2番目と3番目の後を取り除くだけのこのクエリを試しました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;

それでも何も返されません。

4

2 に答える 2

2

単純に変更すると、最初のクエリが機能するはずです

as 'group' 

することが

as `group`
于 2013-03-20T18:53:06.003 に答える
0

@Markの答えを拡張するには。

あなたの最初のケースステートメントは正しいです。
ただし、as構造を間違って使用しています。

予約済みのキーワードをエスケープしたい場合`は、quote ではなく、 backtick を使用する必要があります'

参照:値の範囲を持つ MySQL と CASE WHEN

同様の質問について。

于 2013-03-20T18:58:17.133 に答える