多くの行を含むテーブルがあります。created_on
行は、列であると呼ばれる列の順序で挿入されていることが保証されdatetime
ます。特定の行のcreated_on
時間が既存の行から5秒以内の場合、その特定の行を削除したいと思います。
これらの行を削除するクエリを作成するにはどうすればよいですか?
多くの行を含むテーブルがあります。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 などを使用してこの猫をスキンする方法は 100 万通りあります。少し長いですが、これが最も明確に理解できると思います。