首页 > 解决方案 > 如何查找具有多个不同名称的项目

问题描述

我遇到了一个非常简单的 sql 查询的问题。我想识别具有多个名称的所有项目。这是我目前正在做的事情:

select group_concat(distinct name) names
from table 
group by master_id
having names like '%,%'

names不幸的是,其中有很多,内容,因此上述内容效果不佳。执行此查询的正确方法是什么?

标签: mysqlsql

解决方案


这是您查询的正确版本:

SELECT
    master_id,
    GROUP_CONCAT(DISTINCT name) names
FROM yourTable
GROUP BY master_id
HAVING COUNT(DISTINCT name) > 1;

我们需要在HAVING子句中计算 distinct 的原因是聚合字符串中的逻辑项是一个不同的名称。


推荐阅读