2012-01-06 5 views

Respuesta

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

Estoy bastante seguro de MySQL no permiten límite en las consultas internas. –

+0

@ItayMoav, estoy bastante seguro de lo contrario. – Johan

+0

@Johan ambos estamos equivocados, debería haber declarado las versiones donde esta restricción se cumple (5.1 y siguientes, si mi memoria sirve) y usted tiene que hacer lo mismo. Si cree que 5.1 es compatible, es más que bienvenido para probar esto. –

9

para el primer 100,

DELETE FROM table ORDER BY <field> ASC limit 100 

y por último 100,

DELETE FROM table ORDER BY <field> DESC limit 100 
Cuestiones relacionadas