【问题标题】:Deleting specified number of rows from SQLite database从 SQLite 数据库中删除指定数量的行
【发布时间】:2021-05-11 01:41:06
【问题描述】:

我正在尝试使用以下语句从数据库中删除 6 行,但出现如下所示的错误。

getWritableDatabase().execSQL("DELETE FROM tblname ORDER BY _id ASC LIMIT 6;");

错误:

原因:android.database.sqlite.SQLiteException:“ORDER”附近:语法错误:DELETE FROM tblname*

我尝试以不同的方式重新格式化 SQL,但无法使其正常工作。我错过了什么?

【问题讨论】:

    标签: android sqlite


    【解决方案1】:
    DELETE FROM tblname WHERE `_id` IN (SELECT `_id` FROM tblname ORDER BY `_id` ASC LIMIT 6)
    

    不过,我认为您的问题可能是引用了_id

    【讨论】:

    • 谢谢。那个确切的 SQL 起作用了。我不太确定为什么原来的 SQL 不起作用。根据此文档(在 DELETE 中使用 LIMIT),它应该可以工作 sqlite.org/lang_delete.html 再次感谢您的帮助。
    【解决方案2】:

    sqlite 中 DELETE 的 LIMIT 和 ORDER 选项是可选的,并且似乎在 Android 上没有启用它们。即使没有引号,上面的 Borealid 的 SQL 也可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 2018-06-23
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多