Як видалити з таблиці, де ідентифікатор є у списку ідентифікаторів?


91

якщо у мене є список ідентифікаторів (1,4,6,7) і таблиця db, де я хочу видалити всі записи, де в цьому списку є ідентифікатор, що це зробити?

Відповіді:


168

Ваше питання майже пише SQL для цього:

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

@jayarjo: Будь-яка різниця, мабуть, була б незначною, і я не думаю, що є жодна причина, за яким одне за одним видалення було б у будь-якому випадку більш ефективним.
Матті Вірккунен,

Просто тут продуктивність може досягти зручності. Наприклад, я вже отримав функції, щоб робити це по черзі на місці. Але якби існувала ймовірність підвищення продуктивності, я міг би написати якийсь додатковий код, інакше, мабуть, не варто.
jayarjo

8
Поодинці майже напевно було б повільніше, звичайно на Oracle або PostgreSQL. Розбиття SQL-операцій на багато менших операцій - чудовий спосіб отримати погану продуктивність.
Девід Олдрідж

1
Я виявив, що 10 000 пунктів у пункті In зайняли близько 200 секунд, але 1000 зайняло 3 секунди (або 30 секунд у нормалізованому порівнянні). Розмір має значення.
омусама

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.