2009-10-15 91 views

回答

9

我假設你想刪除給出「選擇」查詢沒有結果的未排序順序「前1000行」排序參數和沒有標準,在這種情況下你做錯了什麼。

但是,作爲一個學術練習,這裏是你如何去做。 SQLite中的所有行都有rowid字段,您可以使用該字段查找1000行結束的位置。

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

如果你有SQLite的更新和刪除限制啓用

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

看着你的查詢,我真的感到沮喪(抱歉,我是sql新手!)我嘗試,但我無法得到結果。 – Dennie 2009-10-15 13:42:38