Мне нужна функция, которая возвращает список строк.
У меня есть данные в такой таблице:
Id MyString
------------------------
1 First
2 Second
3 Third
4 Fourth
Мне нужна такая функция (что-то вроде этого работает в oracle):
select LISTAGG(MyString, ', ') as myList where id < 4
Это возвращает что-то вроде этого:
myList
------------------------
First, Second, Third
Есть идеи?
Вы ищете GROUP_CONCAT ()
Попробуйте:
select group_concat(MyString separator ', ') as myList from table
where id < 4
Конечно, вы можете group by
результаты.
Начиная с MySQL 5.7.22 вы также можете использовать две функции агрегирования JSON: JSON_ARRAYAGG или JSON_OBJECTAGG . Вы можете объединить их вместе с функциями JSON MySQL , чтобы получить результаты, агрегированные как JSON. В отличие от GROUP_CONCAT
, нет параметра конфигурации MySQL, который бы ограничивал размер возвращаемого значения, кроме max_allowed_packet
(который влияет на все запросы).