2010-03-07 37 views
15

我需要使用group_concat来构建逗号分隔值列表,但我需要引用值。我该怎么做呢?如何使用group_concat引用值

此:

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

应该转换为:

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

回答

33

用途:

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

感谢OMG小马。这像一个魅力。 – jim 2010-03-07 01:56:45

+0

如果我的子查询在第一行返回1,2,3和第二行3,4和2,3所以它不起作用,请你给我提供其他的东西 – 2016-01-11 12:34:20

9

您可以给应用GROUP_CONCAT之前的元素。

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

+1:你是第一个 – 2010-03-07 01:55:21

+0

谢谢麦克斯,我试图决定谁为此得分。很痛! – jim 2010-03-07 01:56:26

18

使用MySQL字符串函数QUOTE

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

这将处理当字符串本身包含引号的情况。

+1

@OP,将其作为接受的答案。 – nehemiah 2016-05-09 07:25:56

+0

@itsneo接受的答案是帮助OP解决了原始问题。这不一定是“最好”的解决方案。使用投票来表达您对这个问题的最佳解决方案的看法。 – Gajus 2016-05-09 10:18:57