GROUP_CONCAT comma separator - MySQL

2019-01-21 00:36发布

问题:

I have a query where I am using GROUP_CONCAT and a custom separator as my results may contain commas: '----'

This all works well, however it is still comma separated, so my output is:

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

How can I make it so the output is:

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

I thought this was the idea of a custom separator!

Failing that, can you escape commas in your results, so I can explode in PHP by the GROUP_CONCAT commas?

回答1:

Looks like you're missing the SEPARATOR keyword in the GROUP_CONCAT function.

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

The way you've written it, you're concatenating artists.artistname with the '----' string using the default comma separator.



回答2:

Query to achieve your requirment

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


回答3:

Or, if you are doing a split - join:

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

You may want to inclue WITHIN RECORD, like this:

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

from BigQuery API page