在QSqlTableModel 中实现条件查找记录:
C/C++ code
QSqlQuery query;。
query.exec("show databases");。
while (query.next()) {。
qDebug()<<query.value(0).toString()<<"\n";。
}
sql语句中,关联查询只取分组的一条记录的方法如下:\x0d\x0aselectuserid,ranking,usernamefromtable//查询字段有useridusername\x0d\x0awhereuserid+rankingin//where条件包括userid+rankingin是集合选择关键字\x0d\x0a(\x0d\x0aselectuserid+max(ranking)fromtable//max(ranking)选择ranking列的最大值\x0d\x0agroupbyuserid//根据userid分组\x0d\x0a)\x0d\x0a以上sql中,内层select查出了最大的ranking,根据userid分组,外层查询中选择userid+ranking。
从表里查询一条数据mysql可以用limit函数。
比如:select * from tb_users limit 0,1 意思是从tb_users表里查询从0开始第一条数据。也可加上一些条件,比如select * from tb_users where name = '张三' limit 0,1。
QSqlQuery可以用来执行SQL语句和获得执行结果的。
QSqlQueryModel提供了一个sql查询结果的只读数据模型。它从查询QSqlQueryModel获取数据。可以方便的用于在QListView, QTableView, QTreeView等各种view上展示数据。但它是只读的,不能编辑。
QSqlTableMode继承于QSqlQueryModel,与QSqlQueryModel功能相似,比QSqlQueryModel的限制在于不能是任意sql语句,只是对单个数据表操作,拓展在于在各种view上展示表格数据的同时,还允许用户进行编辑操作。
model.setFilter(QObject::tr("id = %1").arg(studentid));。
scoremodel.select();。
这样可以只显示一条指定数据
原文地址:http://www.qianchusai.com/qsqltablemodel%E8%8E%B7%E5%8F%96%E4%B8%80%E6%9D%A1%E6%95%B0%E6%8D%AE.html