【问题标题】:How to read the last record in SQLite table?如何读取 SQLite 表中的最后一条记录?
【发布时间】:2014-06-30 15:53:49
【问题描述】:

有没有一种方法可以读取插入到 SQLite 表中的最后一条记录的值,而无需查看以前的记录?

我问这个问题是出于性能原因。

【问题讨论】:

  • 最后基于什么顺序?
  • 基于最后一次插入。订单是自动递增的ID。
  • 所以你是说你正在寻找如何检索具有最大 ID 的记录?
  • 是的,正是我的意思。
  • 这能回答你的问题吗? How to get Last record from Sqlite?

标签: sqlite


【解决方案1】:

有一个名为 sqlite3_last_insert_rowid() 的函数将返回最近插入操作的整数键。 http://www.sqlite.org/c3ref/last_insert_rowid.html

这只有在您知道上次插入发生在您关心的表上时才有帮助。

如果您需要表的最后一行,无论最后插入是否在此表上,您都必须使用 SQL 查询

SELECT * FROM mytable WHERE ROWID IN ( SELECT max( ROWID ) FROM mytable );

【讨论】:

  • 你也可以SELECT * FROM mytable ORDER BY ROWID DESC LIMIT 1,虽然我不知道哪个会更快。
【解决方案2】:

当您按 ID 对记录进行排序时,以相反的顺序,将首先返回最后一条记录。 (因为自增列上有隐式索引,所以效率很高。)

如果您对任何其他记录不感兴趣,请使用 LIMIT:

SELECT *
FROM MyTable
ORDER BY _id DESC
LIMIT 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多