Возвращение списка значений в виде текстовой строки в одном столбце из подзапроса в MySQL

0

В postgresql его можно вернуть значение в один столбец, например, список, разделенный запятыми, который включает возвращенные значения из одного подбора. Это очень полезно в случаях, когда приходится обрабатывать большой объем данных и пытаться избежать нескольких подзапросов

SELECT a.key, a.transaction_id,
array_to_string(array(SELECT cast(lo.issue as text) FROM keys.key_list lo 
WHERE version_id = 2 AND lo.issue >= '2017-01-01' 
AND lo.key=a.key),\', \') as issue_dates
FROM public.orders a
WHERE a.type IN (2, 4)

В этом случае он возвращает данные как

    key | transaction_id  | issue_dates

   aaa1 |   234234234     | 2017-01-01, 2017-06-05, 2018-01-02

Можно ли сделать подобное в MySQL?

  • 0
    Вы можете использовать group_concat, но я предпочитаю делать подобные манипуляции в коде приложения
Теги:

2 ответа

1
Лучший ответ
SELECT a.key, a.transaction_id,(SELECT GROUP_CONCAT(lo.issue) 
FROM keys.key_list lo WHERE version_id = 2 AND lo.issue >= '2017-01-01' 
AND lo.key=a.key) as issue_dates
FROM public.orders a
WHERE a.type IN (2, 4)
0

Вы можете использовать функцию group_concat в MySQL для агрегирования списка значений в виде строки. Вам не нужно писать подзаголовок для этого, левое соединение будет прекрасно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню