各位大大好:在下遇到一个麻烦,一个表本来想将‘xid’建立为主键的。
但是发现重复的内容太多了。导致无法设置为‘主键’如何批量处理呢(xid如果有重复删除其中任一一条)其实xid不应该有重复的,但是后面几次操作数据库的时候貌似用了错误的方法导致,所以求大家帮忙写个SQL语句,可以在phpmyadmin执行就OK.谢谢。
数据库SQLphpMyAdmin

解决方案 »

  1.   

    应该是利用DISTINCT,先查询出来结果转存到另一张表,再将本表清空,将另一张表的数据贴到本表中来。大致过程是这样。
      

  2.   

    先整理出有重复的,然后删到只剩下一条为止。需要程序配合。
    -- 先选出保存
    INSERT INTO tb2 (xid,tt) 
    SELECT xid,COUNT(xid) AS tt FROM tb GROUP BY xid HAVING tt>2 ORDER BY tt DESC --再用程序调用
    DELETE FROM tb WHERE xid=$xid LIMIT $tt-1
      

  3.   

    如果主键id不同的话, 就是查找出xid相同的,去掉一条,可以用游标呢,当前这个前提是你的主键id不能相同,不然无法知道用哪个字段来删了。