mysql一个表中类型相同并且时间相差一个小时以内认定为相同数据,如何找出一个表中存在相同案例的所有记录的id,用高效率的sql语言实现
时间: 2024-05-03 17:22:43 浏览: 70
可以使用自连接和时间差函数来实现:
```
SELECT DISTINCT t1.id, t2.id
FROM table_name t1
JOIN table_name t2 ON t1.type = t2.type
AND ABS(TIMESTAMPDIFF(HOUR, t1.time, t2.time)) <= 1
AND t1.id < t2.id
```
解释:
- 自连接同一个表,每个表别名为 t1 和 t2。
- 判断 t1 和 t2 的 type 是否相同。
- 使用 ABS 和 TIMESTAMPDIFF 函数计算 t1 和 t2 的时间差是否在一个小时以内。
- 使用 DISTINCT 去重,并且限制 t1.id 小于 t2.id,避免重复。
阅读全文