我有桌子

id:name:passportnumber:score
1:xxx:123456:99
2:yyy:789012:88
3:xxx:123456:11
4:xxx:123456:44
5:xxx:123456:66
6:xxx:123456:77


我想删除重复的旧行,而只保留具有相同护照号码的最新行

id:name:passportnumber:score
2:yyy:789012:88
6:xxx:123456:77


没有临时表的最佳方法是什么

谢谢

最佳答案

您应该能够对表进行自我联接并执行删除操作:

delete t1
from yt t1
inner join yt t2
  on t1.passportnumber = t2.passportnumber
where t1.id < t2.id;


SQL Fiddle with Demo

关于php - 删除重复的旧行,仅保留最新的mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16306084/

10-10 11:43