Làm cách nào để xóa khỏi một bảng có ID trong danh sách các ID?


91

nếu tôi có một danh sách các ID (1,4,6,7) và một bảng db nơi tôi muốn xóa tất cả các bản ghi có ID trong danh sách này, thì cách thực hiện điều đó là gì?

Câu trả lời:


168

Câu hỏi của bạn gần như đánh vần SQL cho điều này:

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

@jayarjo: Bất kỳ sự khác biệt nào có thể sẽ không đáng kể và tôi không nghĩ rằng có bất kỳ lý do nào khiến việc xóa từng cái một sẽ hiệu quả hơn bất kỳ cách nào.
Matti Virkkunen

Nó chỉ là nơi mà hiệu suất có thể đạt được sự thuận tiện. Ví dụ, tôi đã có các chức năng để thực hiện từng việc một tại chỗ. Nhưng nếu có cơ hội tăng hiệu suất, tôi có thể viết một số mã bổ sung, nếu không có lẽ nó sẽ không đáng.
jayarjo

8
Từng cái một gần như chắc chắn sẽ chậm hơn, chắc chắn là trên Oracle hoặc PostgreSQL. Chia nhỏ các hoạt động SQL thành nhiều hoạt động nhỏ hơn là một cách tuyệt vời để nhận được hiệu suất kém.
David Aldridge

1
Tôi thấy rằng 10.000 mục trong mệnh đề Trong mất khoảng 200 giây, nhưng 1000 mục mất 3 giây (hoặc 30 giây khi so sánh bình thường). Kích thước không quan trọng.
ohmusama

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.