【发布时间】:2019-12-10 02:11:08
【问题描述】:
我有一个像这样的简单表
+----+---------------------+
| id | datetime |
+----+---------------------+
| 1 | 2019-05-05 16:00:00 |
| 1 | 2019-05-05 17:00:00 |
| 1 | 2019-05-05 18:00:00 |
| 1 | 2019-05-05 18:00:00 |
| 2 | 2019-05-05 16:00:00 |
| 2 | 2019-05-05 17:00:00 |
| 2 | 2019-05-05 18:00:00 |
| 3 | 2019-05-05 17:00:00 |
| 3 | 2019-05-05 17:00:00 |
+----+---------------------+
我想过滤掉所有具有重复 datetime 条目的行 每个 id,这样我最终可能会得到这样的表格:
+----+---------------------+
| id | datetime |
+----+---------------------+
| 1 | 2019-05-05 16:00:00 |
| 1 | 2019-05-05 17:00:00 |
| 1 | 2019-05-05 18:00:00 |
| 2 | 2019-05-05 16:00:00 |
| 2 | 2019-05-05 17:00:00 |
| 2 | 2019-05-05 18:00:00 |
| 3 | 2019-05-05 17:00:00 |
+----+---------------------+
在 MySQL 中最简单的方法是什么?
编辑:假设我有另一个名为weight 的列,它为每行数据分配一个数字权重。有没有办法告诉 MySQL 根据哪个具有最大的 weight 来过滤掉每个 id 的重复 datetime 条目?
【问题讨论】:
-
如果没有某种机制来唯一标识行,就没有真正的表格。
-
如果您有不同的问题,请提出不同的问题(如果合适,请参考此问题)
-
像@Strawberry 或多或少说没有办法编写一个 SQL 来始终授予 100% 确定性(固定)结果,而无需唯一标识列,该列需要具有主键或唯一键。
-
我们可以假设该列存在,我只是使用一个骨架表来大致了解我需要做什么
标签: mysql sql database duplicates distinct