如何查询非重复行但保留主键

时间:2019-06-25 06:09:03

标签: mysql sql

由于刷新表单请求的用户错误,我在数据库中继承了多个重复的行。该概念是慈善活动的实时跟踪器,其中每小时都会更新一次距离。由于他们尝试在输入新距离后重新刷新管理页面,因此重新提交了很多次。

我试图将SQL查询更改为仅提取DISTINCT行。这适用于total_distance的单列,但是,我需要将主键id与其一起拉出。

如果我尝试:

SELECT DISTINCT total_distance, id
FROM ptsd_cycle
ORDER BY total_distance DESC

我仍然得到重复的条目,因为ID导致它们是不同的。如何仅查询非重复行?

1 个答案:

答案 0 :(得分:2)

尝试对距离进行分组,因为您说它是重复的,并获得id行的最小值,这将为您提供具有该距离值的第一条记录。

SELECT MIN(id) AS id, total_distance 
FROM ptsd_cycle 
GROUP BY total_distance 
ORDER BY total_distance DESC