MySQL 中的聚合函数 GROUP_CONCAT

Aggregate function GROUP_CONCAT in MySQL

我使用 MySQL GROUP_CONCAT 函数是一个聚合函数,它将一组字符串连接成一个字符串,为此 return

'31A', '31C', '32B', '32D', '52G'

这是查询:

SELECT 
  GROUP_CONCAT( DISTINCT CONCAT( '''', xCOD ) ORDER BY xCOD ASC SEPARATOR ''' , ' ) AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;

这个 returns:

'31A', '31C', '32B', '32D', '52G

但是 return MySQL GROUP_CONCAT 函数的最后一个元素没有单引号

如何解决这个问题?

如果你想把每个值都用引号括起来,那么你可以只使用 CONCAT

SELECT 
  GROUP_CONCAT(DISTINCT CONCAT("'", xCOD, "'") ORDER BY xCOD ASC SEPARATOR ", ") AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;

事实上,您根本不需要 CONCAT。你可以这样做:

SELECT 
  GROUP_CONCAT(DISTINCT "'", xCOD, "'" ORDER BY xCOD ASC SEPARATOR ", ") AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;