【发布时间】:2010-12-07 00:33:10
【问题描述】:
我有一张桌子(姓名、地址、电话),我的桌子有 2000 多行。我想删除 1000 行。查询情况如何?
【问题讨论】:
标签: sqlite sql-delete
我有一张桌子(姓名、地址、电话),我的桌子有 2000 多行。我想删除 1000 行。查询情况如何?
【问题讨论】:
标签: sqlite sql-delete
我假设您想删除“前 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
【讨论】:
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
【讨论】: