如何使用 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,但效率较低。
下面是我的示例代码:
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,但效率较低。