gpt4 book ai didi

MySQL,搜索重复项

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:12 25 4
gpt4 key购买 nike

我正在尝试查找重复项,以便删除它们。

我有一个名为 categories 的表,其中包含 uid、qid 和值。

uid 是该表的唯一 ID

qid是问题ID

value 是那个 qid 的标签

因此,每个 qid 可以有很多行,但是每个 qid 应该有唯一的值。

例如:

mysql> SELECT * FROM categories WHERE qid=6869;

+-------+------+-----------+
| uid | qid | value |
+-------+------+-----------+
| 19838 | 6869 | Sport |
| 19839 | 6869 | Football |
| 19840 | 6869 | Sport |
| 19841 | 6869 | Athletics |
+-------+------+-----------+

如您所见,它有两个Sport。我们有超过 8000 个 qid,每个都有 3-8 个标签...我真的不想手动检查每个 qid。

因此,至少,我希望获得一个包含此问题的 qid 的列表,并且最多删除所有重复项。

我尝试过的:

SELECT count(value) AS cnt FROM categories GROUP BY value HAVING cnt>1;

这给了我一个包含很多数字的表格,但我无法打印出更多数字,因为我遇到了这个错误:

mysql> SELECT *, count(value) AS cnt FROM categories GROUP BY value HAVING cnt>1;
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'quizmastershop.categories.uid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

此外,它也不是我所需要的,因为它只为我提供了每个值的计数...

有什么想法吗?

干杯

编辑:版本数据

mysql> SELECT VERSION();
+-------------------------+
| VERSION() |
+-------------------------+
| 5.7.21-0ubuntu0.16.04.1 |
+-------------------------+

编辑 2:我从 sql_mode 字符串中删除了 ONLY_FULL_GROUP_BY。我上面产生错误的字符串仍然没有为我提供任何有用的东西

编辑 3:尝试了 Erics 代码,这正是我需要的输出:-)

+-------+------+-------------------+
| uid | qid | value |
+-------+------+-------------------+
| 470 | 170 | Children's |
| 472 | 170 | Children's |
| 570 | 204 | Geography |
| 572 | 204 | Geography |
| 575 | 205 | Geography |
| 577 | 205 | Geography |

最佳答案

Select * from categories where value in (SELECT value  FROM categories GROUP BY value HAVING count(value)>1)

关于MySQL,搜索重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com