mysql - 如何查询非重复行但保留主键
问题描述
由于刷新表单请求的用户错误,我在我的数据库中继承了多个重复行。这个概念是一个慈善活动的实时跟踪器,每小时更新一次距离。由于他们在输入新的距离后尝试刷新管理页面以返回它,因此它重新提交了无数次。
我试图将我的 SQL 查询更改为只提取DISTINCT
行。这适用于单列但是,我需要用它来拉出total_distance
主键。id
如果我尝试:
SELECT DISTINCT total_distance, id
FROM ptsd_cycle
ORDER BY total_distance DESC
我仍然得到重复的条目,因为 ID 导致它们是不同的。如何只查询不重复的行?
解决方案
尝试按照您所说的重复对距离进行分组,并获得最小的 id 行,这将为您提供具有该距离值的第一条记录。
SELECT MIN(id) AS id, total_distance
FROM ptsd_cycle
GROUP BY total_distance
ORDER BY total_distance DESC
推荐阅读
- embedded - 如何在大数据的拆分和缓冲块上计算 CRC32?
- exception - Asp.Net Wep Api - 返回内部服务器错误和异常详细信息
- azure - 是否可以在时间序列洞察力中为用户友好的图表添加描述
- ruby - 无法通过 AWS-SES 和 Sidekiq 发送电子邮件
- locking - 为什么我们不在信号生产者而不是消费者检查条件变量?
- forms - Orbeon:如何显示来自文件系统资源的动态下拉值
- angularjs - AngularJs 组件绑定未在模板中呈现
- python - 要使用 OULAD 数据集,我如何加入或合并它们?
- sql - 在列上查找具有特定条件的行
- objective-c - 不小心从 XCODE 中删除 .XIB 文件