2009-10-15 13 views

Respuesta

9

Asumo que desea borrar "primeros 1000 filas" dado la orden sin ordenar el resultado de "seleccionar" consulta sin clasificando argumentos y sin criterios, en cuyo caso estás haciendo algo mal.

Pero, como ejercicio académico, así es como lo harías. Todas las filas en un SQLite tienen el campo rowid, que puede usar para encontrar dónde terminan esas 1000 filas.

sqlite> create table t(s string); 
sqlite> insert into t values('a1'); 
sqlite> insert into t values('a2'); 
sqlite> insert into t values('a3'); 
sqlite> insert into t values('a4'); 
sqlite> select * from t; 
a1 
a2 
a3 
a4 
sqlite> delete from t where rowid < (select rowid from t limit 2,1); 
sqlite> select * from t; 
a3 
a4 
5

http://www.sqlite.org/lang_delete.html

Si tuviera el límite de eliminación actualización SQLite habilitado

Delete from your_table 
where any_filter_you_wanted_as_well 
order by if_you_have_a_preference 
limit 1000 
+0

Realmente me siento frustrante cuando miro su consulta (lo siento, soy novato en sql!) Intento pero no puedo obtener el resultado. – Dennie

Cuestiones relacionadas