Разделитель запятой GROUP_CONCAT - MySQL - PullRequest
130 голосов
/ 07 октября 2011

У меня есть запрос, где я использую GROUP_CONCAT и пользовательский разделитель, так как мои результаты могут содержать запятые: '----'

Это все работает хорошо, однако оно все еще разделено запятыми, поэтомумой вывод:

Result A----,Result B----,Result C----

Как я могу сделать так, чтобы вывод был:

Result A----Result B----Result C----

Я думал, что это была идея пользовательского разделителя!

Failingчто, вы можете избежать запятых в ваших результатах, чтобы я мог взорваться в PHP с помощью GROUP_CONCAT запятых?

Ответы [ 3 ]

321 голосов
/ 07 октября 2011

Похоже, вам не хватает ключевого слова SEPARATOR в функции GROUP_CONCAT .

GROUP_CONCAT(artists.artistname SEPARATOR '----')

Как вы написали, вы объединяете artists.artistname со строкой '----', используя разделитель запятых по умолчанию.

7 голосов
/ 27 апреля 2018

Запрос для достижения вашего требования

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;
2 голосов
/ 14 января 2016

Или, если вы делаете сплит - присоединяйтесь:

GROUP_CONCAT(split(thing, " "), '----') AS thing_name,

Вы можете включить WITHIN RECORD, например:

GROUP_CONCAT(split(thing, " "), '----') WITHIN RECORD AS thing_name,

из Страница API BigQuery

...