Может ли быть множественный псевдоним (AS) в MySQL?

Рейтинг: 1Ответов: 1Опубликовано: 06.10.2014

Нужно, чтобы выполнился такой запрос:

SELECT
  name_EN AS AL,
  name_RU AS AL,
  name_TR AS AL
FROM
  tbl
WHERE
  name_EN LIKE '%param%' OR
  name_TR LIKE '%param%' OR
  name_RU LIKE '%param%';

Прошу обратить внимание на псевдоним: AS AL для каждого поля в SELECT.

Ответы

▲ 1Принят

Вы не можете назначить при помощи конструкции AS один и тот же псевдоним сразу нескольким столбцам в результирующей таблице. Однако, вы можете сформировать один столбец, который будет принимать найденное значение.

При формировании запроса следует помнить, что конструкция LIKE не обязательно применяется только в WHERE-условии, вы можете задействовать ее после оператора SELECT. Применив множественный выбор CASE вы можете выбрать именно тот столбец, который был обнаружен и уже ему назначить псевдоним при помощи конструкции AS.

Таким образом, ваш запрос можно переписать так

SELECT
  CASE
    WHEN name_EN LIKE '%param%' THEN name_EN
    WHEN name_RU LIKE '%param%' THEN name_RU
    WHEN name_TR LIKE '%param%' THEN name_TR
  END AS AL
FROM
  tbl 
WHERE
  name_EN LIKE '%param%' OR
  name_TR LIKE '%param%' OR
  name_RU LIKE '%param%'