2010-03-07 31 views
15

Tôi cần sử dụng group_concat để tạo danh sách các giá trị được phân cách bằng dấu phẩy nhưng tôi cần các giá trị được trích dẫn. Làm thế nào để tôi làm điều này?Cách báo giá trị sử dụng group_concat

này:

425,254,431,53,513,13,1,13 

nên được chuyển đổi sang:

'425','254','431','53','513','13','1','13' 

Trả lời

33

Sử dụng:

GROUP_CONCAT(CONCAT('''', your_column, '''')) 
+0

Cảm ơn OMG Ponies. Công việc này như một cái duyên vậy. – jim

+0

Nếu truy vấn phụ của tôi trả về 1,2,3 ở hàng đầu tiên và 3,4 ở hàng thứ hai và 9,2 ở hàng thứ ba để nó không hoạt động, bạn có thể vui lòng cung cấp cho tôi cái gì khác –

9

Bạn có thể báo các yếu tố trước khi áp dụng GROUP_CONCAT.

SELECT GROUP_CONCAT(CONCAT('\'', some_column, '\'')) 
FROM  some_table 
+0

+1: Lần đầu tiên bạn là –

+0

Cảm ơn Max, tôi đã cố gắng quyết định ai sẽ ghi nhận điều này. Thaks rất nhiều! – jim

18

Sử dụng MySQL chuỗi chức năng QUOTE.

GROUP_CONCAT(QUOTE(`foo`)) `bar` 

Điều này sẽ xử lý các trường hợp khi chính chuỗi đó chứa báo giá.

+1

@OP, Làm điều này làm Câu trả lời được chấp nhận. – nehemiah

+0

@itsneo Câu trả lời được chấp nhận là điều đã giúp OP giải quyết vấn đề ban đầu. Nó không nhất thiết là giải pháp "tốt nhất". Sử dụng phiếu bầu để đưa ra ý kiến ​​của bạn về giải pháp tốt nhất cho vấn đề này. – Gajus

Các vấn đề liên quan