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?

pengguna984580
sumber
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.

Joe Stefanelli
sumber
17

Permintaan untuk mencapai persyaratan Anda

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;
Vallabh Bothre
sumber
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

Roma
sumber