mysql - 如何查找具有多个不同名称的项目
问题描述
我遇到了一个非常简单的 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
子句中计算 distinct 的原因是聚合字符串中的逻辑项是一个不同的名称。
推荐阅读
- javascript - 为什么这个 cCryptoGS AES 加密给出的所有密文几乎相同?
- python - 如何使用 Python 将 csv 数据解析为表格
- php - 使用 GET 方法将表单值合并到一个名称下
- c - SIGVTALRM 正在工作,但 SIGALRM 在控制台上显示“闹钟”消息
- python - 如何在APP中显示功能的进度条(使用tkinter的GUI)
- r - 在R中的线图中更改x轴上的日期比例
- python - 在正则表达式上拆分列
- kubernetes - 集群自动扩缩器在不应该时缩减节点
- c# - 从非泛型类调用抽象泛型类中定义的方法的最佳方法是什么
- linux - 无法解压文件