Как я могу получить первое непустое значение группы в MySQL?Получить первое значение группы в MySQL?
У меня есть следующая таблица:
id | item_id | name | description | locale
----------------------------------------------------------
1 | 1 | (null) | (null) | en-GB
2 | 1 | Foo | (null) | en-US
3 | 1 | Bar | Lorem ipsum dolor. | en-AU
Я пытаюсь вернуть результат, как следующий ?:
item_id | name | description
-------------------------------------------------------------------
1 | Foo | Lorem ipsum dolor.
Я сказал coalsece
был путь, но это Безразлично» Кажется, что играть с группами. Хотя выстрел не срабатывал правильно. Это должно дать хорошее представление о том, что я пытаюсь сделать.
select item_id, coalesce(name) as name, coalesce(description) as description from test
where item_id = 1
group by item_id
order by field(locale, 'en-GB', 'en-US', 'en-AU');
Другие попытки, где сделаны с использованием первого(), FIRST_VALUE(), мин(), не более() ... Я достаточно сделать это в прямом запросе MySQL, чем смешивать его с PHP логики.
Возможный дубликат [Выберите столбец, если пустой выбрать из другого источника] (HTTP://stackoverflow.com/questions/1747750/select-column-if-blank-select-from-another) – zanderwar
@ Zanderwar: Вы знаете разницу в строке и столбце? Вы просто связали решение с альтернативными столбцами. – tim
Извините @Tim, строка не возвращает набор столбцов, один из которых вы хотите проверить, пуст, и если это так возвращается к другой таблице и столбцу? Ваше соединение: http://www.w3schools.com/sql/sql_join.asp - всегда можно проверить на стороне php – zanderwar