【问题标题】:Using phpmyadmin to manage duplicates使用 phpmyadmin 管理重复项
【发布时间】:2010-08-16 19:33:22
【问题描述】:

我正在寻找一种工具,可以让我轻松管理 MySQL 数据库中的重复条目。

从某种意义上说,我不想让我的列“唯一”,但我想查看恰好在列中具有完全相同值的记录。

如果我能制作这样一个使用常用界面只显示此类记录的 SQL 查询,那就太好了。

【问题讨论】:

    标签: sql mysql phpmyadmin


    【解决方案1】:

    要获得重复,只需在表上使用自联接:

    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

    【讨论】:

    • 狡猾,但非常棒!现在,我在将“答案”授予您还是授予 hollsk 之间左右为难!
    【解决方案2】:

    应该可以通过查询来选择它们:

    select myColumn, count(myColumn) as myCount from myTable group by myColumn having myCount > 1 order by myCount; 
    

    【讨论】:

    • 几乎完美!您能否再分享两个花絮:1)查看碰巧共享相同 myColumn 值的所有记录,而不仅仅是第一个? 2) 按列组合进行分组?
    • hm - 上面的代码应该按原样返回所有重复项。 count() 给你什么数字?也可以通过添加另一个带有逗号的列名来按额外的列进行分组 - '按 myColumn 分组,myOthercolumn 有...'
    【解决方案3】:
    【解决方案4】:

    在上面的 wimvds 答案中; phpMyAdmin 显示以下警告:

    当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。

    要启用编辑/复制/删除,第一行可以更改为:

    select t1.id, t1.value 
    

    或

    select t2.id, t2.value
    

    因此,您可能希望使用 wimvds 的查询来查看重复项(可能与其他字段一起),然后使用第二个查询来编辑或删除重复记录。

    (也许还有一种方法可以列出重复项;在相邻行中,并且可编辑?)

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 2015-02-09
      • 2012-08-28
      • 2022-12-21
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多