我知道这听起来很混乱,但我不知道如何更好地解释它。我在下面有一个简化的表格:
DB Type ID
================
Table1 1
Table1 2
Table1 3
Table1 4
Table1 5
Table2 6
Table2 7
Table2 8
Table2 9
Table2 10
我想要实现的是基本上清理这个表,但如果有意义的话,保留每个 DB 类型的最高 ID 的记录 - 所以在这种情况下,它将是 (Table1,5) 和 (Table2,10)其他记录被删除。是否可以通过 MySQL 专门执行此操作?
*编辑***
感谢 Yogendra Singh 的提示回答
DELETE FROM MyTable WHERE ID NOT IN (SELECT * FROM (SELECT MAX(ID) from MyTable GROUP BY DB Type) AS tb1 ) ORDER BY ID ASC