Tôi muốn xóa 100 hàng đầu tiên hoặc 100 hàng cuối cùng trong một bảng nhất định (được sắp xếp theo khóa chính).Làm cách nào để xóa tập hợp hàng đầu tiên hoặc cuối cùng theo kiểu động
Lưu ý: Rất nhiều dữ liệu đang được đặt vào bảng này.
Tôi muốn xóa 100 hàng đầu tiên hoặc 100 hàng cuối cùng trong một bảng nhất định (được sắp xếp theo khóa chính).Làm cách nào để xóa tập hợp hàng đầu tiên hoặc cuối cùng theo kiểu động
Lưu ý: Rất nhiều dữ liệu đang được đặt vào bảng này.
DELETE FROM table ORDER BY the field DESC|ASC limit 100
SET @first = 1;
delete from mytable
where primKey in (select 1
from myTable
order by
CASE WHEN @first = 1 THEN primKey END ASC,
CASE WHEN @first <> 1 THEN primKey END DESC
limit 100)
cho 100 đầu tiên,
DELETE FROM table ORDER BY <field> ASC limit 100
và cuối cùng 100,
DELETE FROM table ORDER BY <field> DESC limit 100
Tôi khá chắc chắn mysql không cho phép giới hạn trong các truy vấn bên trong. –
@ItayMoav, tôi khá chắc chắn về điều ngược lại. – Johan
@Johan chúng tôi đều sai, tôi nên đã nêu các phiên bản mà hạn chế này giữ (5.1 và dưới đây, nếu bộ nhớ của tôi phục vụ) và bạn phải làm như vậy. Nếu bạn tin rằng 5.1 hỗ trợ điều đó, bạn được chào đón nhiều hơn để kiểm tra điều này. –