GROUP_CONCAT เครื่องหมายจุลภาคคั่น - MySQL


145

ฉันมีคำถามที่ฉันใช้GROUP_CONCATและตัวคั่นที่กำหนดเองเนื่องจากผลลัพธ์ของฉันอาจมีเครื่องหมายจุลภาค: '----'

ทั้งหมดนี้ทำงานได้ดี แต่ก็ยังคงคั่นด้วยเครื่องหมายจุลภาคดังนั้นผลลัพธ์ของฉันคือ:

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

ฉันจะทำให้มันเป็นผลลัพธ์ได้อย่างไร:

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

ฉันคิดว่านี่เป็นความคิดของตัวแยกที่กำหนดเอง!

คุณสามารถหลีกเลี่ยงเครื่องหมายจุลภาคในผลลัพธ์ของคุณดังนั้นฉันจึงสามารถระเบิดด้วยGROUP_CONCATจุลภาคใน PHP ได้หรือไม่


เครื่องหมายจุลภาคมาจากไหน พวกเขาเป็นตัวคั่นหรือเป็นส่วนหนึ่งของผลลัพธ์หรือไม่ ส่วนหนึ่งของคำถามนั้นไม่ชัดเจนสำหรับฉัน
Matt Fenwick

1
GROUP_CONCAT (artist.artistname, '----') เป็นกลุ่ม concat line ของฉัน - อย่างที่คุณเห็นฉันไม่ได้ใส่เครื่องหมายจุลภาคเป็นตัวคั่น - พวกเขาไม่ได้อยู่ในผลลัพธ์ แต่แสดงในผลลัพธ์
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,

จากหน้า BigQuery API

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.