Pemisah koma GROUP_CONCAT - MySQL


145

Saya memiliki kueri tempat saya menggunakan GROUP_CONCATdan pemisah khusus karena hasil saya mungkin mengandung koma: '----'

Ini semua bekerja dengan baik, namun masih dipisahkan koma, jadi output saya adalah:

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

Bagaimana saya bisa membuatnya jadi outputnya adalah:

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

Saya pikir ini adalah ide pemisah khusus!

Gagal itu, bisakah Anda menghindari koma dalam hasil Anda, jadi saya bisa meledak di PHP oleh GROUP_CONCATkoma?


Dari mana koma berasal? Apakah mereka pemisah, atau bagian dari hasil? Bagian dari pertanyaan itu tidak jelas bagi saya.
Matt Fenwick

1
GROUP_CONCAT (artist.artistname, '----') adalah baris concat grup saya - seperti yang Anda lihat, saya belum menempatkan koma sebagai pemisah - mereka tidak ada dalam hasil tetapi ditampilkan dalam output
user984580

Jawaban:


352

Sepertinya Anda melewatkan kata kunci SEPARATOR di fungsi GROUP_CONCAT .

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

Cara Anda menulisnya, Anda menyatukan artists.artistnamedengan '----'string menggunakan pemisah koma default.


17

Permintaan untuk mencapai persyaratan Anda

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

Persyaratannya adalah untuk digunakan ----sebagai pemisah.
ks1322

1

Atau, jika Anda melakukan split - gabung:

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

Anda mungkin ingin menambahkan WITHIN RECORD, seperti ini:

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

dari halaman BigQuery API

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.