いくつかの列で上位 N 行の順序を削除することに関して、いくつかの混乱があります。
これらのクエリの何が問題になっていますか?
Delete Top(3) from Table1 order by id desc
Delete Top(3) from Table1
where id IN (select id from Table1 order by id desc)
mysqlでは limit キーワードが非常にうまく機能するため
いくつかの列で上位 N 行の順序を削除することに関して、いくつかの混乱があります。
これらのクエリの何が問題になっていますか?
Delete Top(3) from Table1 order by id desc
Delete Top(3) from Table1
where id IN (select id from Table1 order by id desc)
mysqlでは limit キーワードが非常にうまく機能するため
CTE を使用すると、上位 3 つの ID を取得するための別のサブクエリを必要とせずに、より高速な順序付き削除を実行できます。
WITH T
AS (SELECT TOP 3 *
FROM Table1
ORDER BY id DESC)
DELETE FROM T
top 3
句を副選択に追加します。
Delete from Table1
where id IN (
select top 3 id
from Table1
order by id desc
)