Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Условный запрос mysql - сложный

Автор вопроса: emreОтветов: 3

Я хочу получить разные значения для поля, скажем: field1... Для этого нужен запрос типа: "выбрать отличное (поле1) из таблицы"

Однако для некоторых записей поле1 пусто, и есть другой столбец, который является альтернативой полю1, а именно поле2. Для записей, где поле1 пусто, мне нужно использовать значение поля2. Я думаю, мне нужен своего рода оператор условного выбора с управлением if, например:

 select distinct( (if(field1!='') field1 else field2) ) from table

Я понятия не имею, как это написать. Любая помощь приветствуется...

  • может не так уж и сложно :) emre 31.05.2010

distinctconditional

Ответы

Ответ 1 · рейтинг 1 · ceteras

SELECT DISTINCT (
 IF( coalesce(field1,'') <> '', field1, field2)
)
FROM table

Это будет работать как для нулевого, так и для пустого field1.

Ответ 2 · рейтинг 2 · Peter Tillemans

SELECT DISTINCT IFNULL (поле1, поле2) из ​​таблицы

должен сделать трюк.

Ответ 3 · emre

я думаю, что сделал это (не уверен, что результат правильный):

SELECT DISTINCT (
 IF( field1 <> '', field1, field2)
)
FROM table

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы