2009-10-15 10 views

risposta

9

Presumo che si desidera eliminare "prime 1000 righe" dato l'ordine non ordinato del risultato della query "selezionare" senza argomenti di ordinamento e nessun criterio, nel qual caso stai facendo qualcosa di sbagliato.

Ma, come esercizio accademico, ecco come lo faresti. Tutte le righe in un SQLite hanno il campo rowid, che è possibile utilizzare per trovare dove terminano quelle 1000 righe.

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

Se tu avessi il limite di eliminazione aggiornamento SQLite abilitato

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

Mi sento davvero frustrante quando guardo la tua domanda (mi dispiace sono sql newbie!) Cerco ma non riesco a ottenere il risultato. – Dennie

Problemi correlati