2012-01-06 31 views

Trả lời

36
DELETE FROM table ORDER BY the field DESC|ASC limit 100 
1
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) 
+0

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. –

+0

@ItayMoav, tôi khá chắc chắn về điều ngược lại. – Johan

+0

@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. –

9

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 
Các vấn đề liên quan