Dấu phân cách dấu phẩy GROUP_CONCAT - MySQL


145

Tôi có một truy vấn nơi tôi đang sử dụng GROUP_CONCATvà một dấu tách tùy chỉnh vì kết quả của tôi có thể chứa dấu phẩy: '----'

Tất cả đều hoạt động tốt, tuy nhiên nó vẫn được phân tách bằng dấu phẩy, vì vậy đầu ra của tôi là:

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

Làm thế nào tôi có thể làm cho nó để đầu ra là:

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

Tôi nghĩ rằng đây là ý tưởng của một dải phân cách tùy chỉnh!

Không thành công, bạn có thể thoát dấu phẩy trong kết quả của mình không, vì vậy tôi có thể phát nổ trong PHP bằng GROUP_CONCATdấu phẩy?


Dấu phẩy đến từ đâu? Họ là những người phân tách, hoặc một phần của kết quả? Đó là một phần của câu hỏi không rõ ràng với tôi.
Matt Fenwick

1
GROUP_CONCAT (artist.artistname, '----') là dòng concat nhóm của tôi - như bạn có thể thấy, tôi không đặt dấu phẩy làm dấu phân cách - chúng không nằm trong kết quả mà hiển thị trong đầu ra
user984580

Câu trả lời:


352

Có vẻ như bạn đang thiếu từ khóa SEPARATOR trong hàm GROUP_CONCAT .

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

Cách bạn đã viết nó, bạn đang concatenating artists.artistnamevới '----'chuỗi bằng cách sử dụng dấu phẩy phân cách mặc định.


17

Truy vấn để đạt được yêu cầu của bạn

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

Yêu cầu là sử dụng ----như một dải phân cách.
ks1322

1

Hoặc, nếu bạn đang thực hiện chia tách - hãy tham gia:

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

Bạn có thể muốn đưa vào WITHIN RECORD, như thế này:

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

từ trang API của BigQuery

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.