mysql group_concat distinct + group by and a where condition



我有一个这样的查询,在我需要在colA 上添加一个条件之前,它运行良好

SELECT GROUP_CONCAT(DISTINCT colA) as colA, CONCAT (colB,colC,colD) AS group1 FROM tablename GROUP BY group1

colA将返回以下内容:

"AH,LO,CE"
"AH,LO"
"AH,DE"
"AH"
"LO,CE,DF"
"LO,DF"

我需要将条件添加到查询中,其中必须存在特定的colA值;AH";然而,当我这样做的时候,结果没有其他concat(在colA上不同,所以我最终得到了

SELECT GROUP_CONCAT(DISTINCT colA) as colA, CONCAT (colB,colC,colD) AS group1 FROM tablename WHERE colA = 'AH' GROUP BY group1

"AH"
"AH"
"AH"
"AH"

我希望其他记录像第一个结果中显示的那样连接起来,但添加一个匹配的记录必须包括该值,但只要其中一个匹配,它仍然会引入Group1 上与该组匹配的所有其他记录

"AH,LO,CE"
"AH,LO"
"AH,DE"
"AH"

非常感谢您的帮助。非常感谢。

您可以像这样使用HAVINGFIND_IN_SET

SELECT GROUP_CONCAT(DISTINCT colA) as colA, CONCAT(colB, colC, colD) AS group1
FROM tablename
GROUP BY group1
HAVING FIND_IN_SET('AH', colA)

DB Fiddle

最新更新