【发布时间】:2010-08-16 19:33:22
【问题描述】:
我正在寻找一种工具,可以让我轻松管理 MySQL 数据库中的重复条目。
从某种意义上说,我不想让我的列“唯一”,但我想查看恰好在列中具有完全相同值的记录。
如果我能制作这样一个使用常用界面只显示此类记录的 SQL 查询,那就太好了。
【问题讨论】:
标签: sql mysql phpmyadmin
我正在寻找一种工具,可以让我轻松管理 MySQL 数据库中的重复条目。
从某种意义上说,我不想让我的列“唯一”,但我想查看恰好在列中具有完全相同值的记录。
如果我能制作这样一个使用常用界面只显示此类记录的 SQL 查询,那就太好了。
【问题讨论】:
标签: sql mysql phpmyadmin
要获得重复,只需在表上使用自联接:
select t1.id, t2.id, t1.value
from table t1
inner join table t2 on t1.value=t2.value
where t1.id < t2.id
t1.id
【讨论】:
应该可以通过查询来选择它们:
select myColumn, count(myColumn) as myCount from myTable group by myColumn having myCount > 1 order by myCount;
【讨论】:
在上面的 wimvds 答案中; phpMyAdmin 显示以下警告:
当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。
要启用编辑/复制/删除,第一行可以更改为:
select t1.id, t1.value
或
select t2.id, t2.value
因此,您可能希望使用 wimvds 的查询来查看重复项(可能与其他字段一起),然后使用第二个查询来编辑或删除重复记录。
(也许还有一种方法可以列出重复项;在相邻行中,并且可编辑?)
【讨论】: