我有一个表名作为助手,
用户名中有重复的条目,如何删除重复的条目。?
这是我的助学金表,
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);
答案 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`);
之后,您可以根据需要删除唯一身份。