IDがIDのリストにあるテーブルから削除するにはどうすればよいですか?


91

IDのリスト(1,4,6,7)と、IDがこのリストにあるすべてのレコードを削除するdbテーブルがある場合、それを行う方法は何ですか?

回答:


168

あなたの質問はほとんどこれのためのSQLを綴っています:

DELETE FROM table WHERE id IN (1, 4, 6, 7)

@jayarjo:違いはおそらくごくわずかであり、とにかく1つずつ削除する方が効率的である理由はないと思います。
Matti Virkkunen 2010年

パフォーマンスが便利になる可能性がある場所です。たとえば、私はすでにそれを1つずつ実行する関数を持っています。しかし、パフォーマンスが向上する可能性があれば、追加のコードを書くことができます。そうでなければ、おそらくそれだけの価値はありません。
jayarjo 2010年

8
確かにOracleやPostgreSQLでは、1つずつ遅くなることはほぼ間違いありません。SQL操作を多くの小さな操作に分割することは、パフォーマンスを低下させる優れた方法です。
デビッドオルドリッジ

1
In句の10,000個のアイテムには約200秒かかりましたが、1000個には3秒(正規化された比較では30秒)かかりました。サイズは重要です。
オームサマ2015

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.