GROUP_CONCAT роздільник комах - MySQL


145

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

Це все добре працює, однак воно все ще відокремлено комами, тому вихід:

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

Як зробити так, щоб результат був:

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

Я думав, що це ідея спеціального роздільника!

Якщо цього не зробити, чи можна уникнути коми у своїх результатах, щоб я міг вибухнути в PHP GROUP_CONCATкомами?


Звідки беруться коми? Це роздільники, чи частина результатів? Ця частина питання мені незрозуміла.
Метт Фенвік

1
GROUP_CONCAT (artist.artistname, '----') - це моя група конкретних ліній - як ви бачите, я не ставив косу як роздільник - їх немає в результатах, але показують у висновку
user984580

Відповіді:


352

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

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

Як ви це написали, ви з'єднуєтеся artists.artistnameз '----'рядком, використовуючи роздільник комах за замовчуванням.


17

Запит на досягнення вашого вимоги

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;

Вимога полягала в тому, щоб використовувати ----як роздільник.
ks1322

1

Або якщо ви робите розкол - приєднуйтесь:

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

Можливо, ви хочете зробити WITHIN RECORDтаке:

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

зі сторінки API BigQuery

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.