我在使用非常简单的sql查询时遇到了麻烦。我想识别所有具有多个名称的物品。这是我目前正在做的事情:
select group_concat(distinct name) names
from table
group by master_id
having names like '%,%'
不幸的是,很多names
有,
在里面,所以上述不能很好地工作。进行此查询的正确方法是什么?
这是您查询的正确版本:
SELECT
master_id,
GROUP_CONCAT(DISTINCT name) names
FROM yourTable
GROUP BY master_id
HAVING COUNT(DISTINCT name) > 1;
我们需要在HAVING
子句中算出不重复的原因是,聚合字符串中的逻辑项是不重复的名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句