删除重复的条目mysql

时间:2014-12-01 10:03:35

标签: php mysql

我有一个表名作为助手,

用户名中有重复的条目,如何删除重复的条目。?

这是我的助学金表,

UserID    UserName
  1       ca11074
  2       ca11074
  3       cb56456
  4       cb56456

我需要删除重复的条目。

在这里我试过但不幸的是没有工作。

$sql = 
"DELETE FROM bursary  
WHERE UserName IN (SELECT UserName FROM bursary (COUNT(*) > 1)";
$result=mysql_query($sql);

7 个答案:

答案 0 :(得分:1)

试试这个:

$sql = "ALTER IGNORE TABLE `bursary` ADD UNIQUE INDEX index_name (`UserName`);";
$result = mysql_query($sql);

答案 1 :(得分:1)

您可以使用INNER JOIN。

DELETE a
FROM YOUR_TABLE AS a 
INNER JOIN YOUR_TABLE AS b ON a.UserName = b.UserName 
WHERE  a.UserID < b.UserID;

或者您可以创建另一个TEMP_TABLE,在截断YOUR_TABLE并将TEMP_TABLE数据复制到YOUR_TABLE并删除TEMP_TABLE后,从YOUR_TABLE到TEMP_TABLE中选择不同的值。

答案 2 :(得分:0)

这将删除重复项。它会使行保持最低ID。

DELETE FROM bursary a
WHERE exists (select 1 from bursary b
               where a.UserName = b.UserName and
                     a.id > b.id)

答案 3 :(得分:0)

您可以将唯一密钥应用于您的用户名列,以删除重复的条目。

答案 4 :(得分:0)

您可以尝试以下查询:

Delete bs from bursary bs,bursary bs2 
where bs.UserID > bs2.UserID and bs.UserName = bs2.UserName;

使用上述查询,您可以删除重复的username条目。

答案 5 :(得分:0)

delete from bursary b1 
where rowid > (SELECT min(rowid) FROM bursary b2 group by 
               b2.UserID,b2.UserName);

答案 6 :(得分:-1)

请使用添加唯一与忽略删除所有重复值

ALTER IGNORE TABLE `my_table`
    ADD UNIQUE (`Username`);

之后,您可以根据需要删除唯一身份。