问题描述
下面是我的示例代码:
db = QsqlDatabase.addDatabase('QsqlITE')
db.setDatabaseName('book.db')
db.open()
model = QsqlQueryModel()
model.setQuery("SELECT * FROM card")
self.tableView.setModel(model)
我正在使用QsqlQueryModel,Qtablevie,sqlite3,并且能够查看表中的所有行。但是我只想查看表的最后两行,它们是新插入到表中的行。该表没有“ id”字段,并且具有数字和文本字段。这怎么可能?
下面是表格图片:
解决方法
如果要获取指示插入顺序的任何字段的最后2个元素的顺序(在您的情况下为“ rowid”),则必须在SQL命令中使用过滤器,如下所示:
model.setQuery("SELECT * FROM card ORDER BY rowid DESC LIMIT 2")
另一个可能的选择是使用QSortFilterProxyModel过滤表,但是效率较低。