【问题标题】:How can I delete data with specific row number (sqlite)如何删除具有特定行号的数据(sqlite)
【发布时间】:2010-12-07 00:33:10
【问题描述】:

我有一张桌子(姓名、地址、电话),我的桌子有 2000 多行。我想删除 1000 行。查询情况如何?

【问题讨论】:

    标签: sqlite sql-delete


    【解决方案1】:

    我假设您想删除“前 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
    

    【讨论】:

      【解决方案2】:

      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
      

      【讨论】:

      • 看到你的查询我真的很沮丧(对不起,我是 sql 新手!)我尝试但我无法得到结果。