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;
我使用 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;