如何使用 QSqlQueryModel 仅在来自 sqlite 的表视图中显示最后两行?

How to show last two rows only in tableview from sqlite using with QSqlQueryModel?

下面是我的示例代码:

db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('book.db')
db.open()

model = QSqlQueryModel()
model.setQuery("SELECT * FROM card")
self.tableView.setModel(model)

我正在使用 QSqlQueryModel、Qtablevie、Sqlite3,并且能够查看我的 table 中的所有行。但我只想查看 table 的最后两行,它们是新插入到 table 中的行。 table 没有“id”字段,它有数字和文本字段。这怎么可能? 下面是 table 图片:

如果您想获得按指示插入顺序的任何字段排序的最后 2 个元素,在您的例子中是“rowid”,那么您必须在 SQL 命令中使用过滤器,如下所示:

model.setQuery("SELECT * FROM card ORDER BY rowid DESC LIMIT 2")

另一种可能的选择是使用 QSortFilterProxyModel 过滤 table,但效率较低。