ID'nin bir ID listesinde olduğu bir tablodan nasıl silinir?


91

Eğer bir ID listesi (1,4,6,7) ve bu listede ID bulunan tüm kayıtları silmek istediğim bir db tablom varsa, bunu yapmanın yolu nedir?

Yanıtlar:


168

Sorunuz bunun için SQL'i neredeyse ifade ediyor:

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

@jayarjo: Herhangi bir fark büyük olasılıkla ihmal edilebilir ve tek tek silme işleminin daha verimli olacağına dair herhangi bir neden olduğunu düşünmüyorum.
Matti Virkkunen

Tam da performansın rahatlığa ulaşabileceği yer. Örneğin, bunu tek tek yerine getirmek için zaten işlevlerim var. Ancak, performansın artma şansı olsaydı, bazı ek kodlar yazabilirdim, aksi takdirde muhtemelen buna değmez.
jayarjo

8
Oracle veya PostgreSQL'de teker teker neredeyse kesinlikle daha yavaş olacaktır. SQL işlemlerini birçok küçük işleme bölmek, kötü performans elde etmenin harika bir yoludur.
David Aldridge

1
In cümlesindeki 10.000 öğenin yaklaşık 200 saniye sürdüğünü, ancak 1000 öğenin 3 saniye sürdüğünü (veya normalleştirilmiş karşılaştırmada 30 saniye) buldum. Boyut önemlidir.
ohmusama

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.