Оператор MySQL Case с LIKE для строки

#mysql #case #sql-like

Вопрос:

У меня есть таблица с существующим user_agent столбцом, который я хочу создать на основе нового столбца, если пользовательский агент содержит подстроки 'windows' или 'os x' в MySQL, и я не могу понять, что не так, или найти примеры операторов case со LIKE строками for на этом сайте. Моя версия MySQL такова 8.0.26 .

 SELECT user_id, 
    CASE user_agent 
    WHEN LIKE '%windows%' THEN 'Windows'
    WHEN LIKE '%OS X%' THEN 'Mac'
    Else 'Other'
    END AS Operating System

    FROM pageviews;
 

Ответ №1:

 SELECT user_id, 
    CASE 
    WHEN user_agent  LIKE '%windows%' THEN 'Windows'
    WHEN user_agent  LIKE '%OS X%' THEN 'Mac'
    Else 'Other'
    END AS  `Operating System` 

    FROM pageviews;
 

Комментарии:

1. Да, это правильный синтаксис. Однако для псевдонимов следует использовать стандартные двойные кавычки или собственные обратные ссылки MySQL. Не используйте одинарные кавычки. Они предназначены для строковых литералов, и использование их вместо имен иногда может привести к неожиданным и нежелательным результатам.

2. @ThorstenKettner спасибо! просто обновите мой ответ после вашего комментария.