MySQL - 从SELECT中删除第二个和更多重复项

时间:2018-01-20 09:27:53

标签: mysql sql

如何从select实例中删除第二个和更多重复项(因此只有select实例中的第一个记录应该保存,其他应该删除)。

我尝试使用GROUP BY:http://sqlfiddle.com/#!9/26fda8/2

但我不知道它是如何运作的。在此示例中,GROUP BY始终保存ID = 1的记录。当我将查询从:ORDER BY id DESC更改为:ORDER BY id ASC时,它仍然只返回第一条记录,其他记录将被删除,因此我无法恢复使用GROUP BY因为我无法使用ORDER管理GROUP BY。是否有可能永远删除第二个和更多重复项(因此只应保存第一个记录)?这应该与ORDER一起使用。

感谢。

1 个答案:

答案 0 :(得分:1)

试试这个

- 保留最大ID并删除剩余的重复记录

SELECT * from table_test where id in
(
     select max(id) FROM `table_test` GROUP BY `filter_id`
)  

OR

- 保留最小ID并删除剩余的重复记录

SELECT * from table_test where id in
(
     select min(id) FROM `table_test` GROUP BY `filter_id`
)