gpt4 book ai didi

MySQL查询删除日期接近另一行的行

转载 作者:行者123 更新时间:2023-11-30 21:24:19 25 4
gpt4 key购买 nike

我有一个包含很多行的表格。行保证已按照名为 created_on 的列的顺序插入,这是一个 datetime 列。如果给定行的 created_on 时间在现有行的 5 秒内,我想删除给定行。

我将如何编写查询来删除这些行?

最佳答案

SELECT *
FROM TABLE AS A
WHERE EXISTS (
SELECT *
FROM TABLE AS B
WHERE DATE_SUB(A.created_on, INTERVAL 5 SECOND) <= B.created_on
AND B.created_on < A.created_on
)

您了解这基本上会删除彼此相隔 5 秒内的所有事件链,链中的第一个事件除外。

因为您不能在 DELETE 中为表添加别名,所以您必须执行如下操作:

DELETE
FROM so902859
WHERE created_on IN (
SELECT created_on
FROM so902859 AS A
WHERE EXISTS ( SELECT *
FROM so902859 AS B
WHERE DATE_SUB(A.created_on, INTERVAL 5 SECOND) <= B.created_on
AND B.created_on < A.created_on ) )

有上百万种方法可以使用 JOIN 或其他方式给这只猫剥皮。我认为这个是最容易理解的,如果有点冗长的话。

关于MySQL查询删除日期接近另一行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com