我知道怎么解决了,使用 QSqlQuery::value(0)toInt();没错,关键是加个判断或者循环,如下形式:
QSqlQuery qu;
quexec("SELECT COUNT() FROM hello where tt<10");
while(qufirst())
{
int hel = quvalue(0)toInt();
break;
}
这样hel就为表中数据记录的个数。
在Java中,获得ResultSet的总行数的方法有以下几种。
第一种:利用ResultSet的getRow方法来获得ResultSet的总行数
Statement stmt = concreateStatement(ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_UPDATABLE);
ResultSet rset = stmtexecuteQuery("select from yourTableName");
rsetlast();
int rowCount = rsetgetRow(); //获得ResultSet的总行数
第二种:利用循环ResultSet的元素来获得ResultSet的总行数
ResultSet rset = stmtexecuteQuery("select from yourTableName");
int rowCount = 0;
while(rsetnext()) {
rowCount++;}rowCount就是ResultSet的总行数。
第三种:利用sql语句中的count函数获得ResultSet的总行数
ResultSet rset = stmtexecuteQuery("select count() totalCount from yourTableName");
int rowCount = 0;
if(rsetnext()) {
rowCount=rset getInt("totalCount ");}rowCount就是ResultSet的总行数。
·
·Java中获得ResultSet的总列数是非常简单事情,因为Java中ResultSet提供了ResultSetMetaData工具类,ResultSetMetaData是ResultSet的元数据的集合说明。
java获得ResultSet总列数的代码如下:
Statement stmt = concreateStatement(ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_UPDATABLE);
ResultSet rset = stmtexecuteQuery("select from yourtable");
ResultSetMetaData rsmd = rsetgetMetaData() ;
columnCount就是ResultSet的总列数。
一种查询SQL如下, 利用union获得b和c各自的统计结果, 然后再一次统计整合到最终结果:
select sum(db_cnt) + sum(dc_cnt) as total_cnt, sum(db_cnt) as b_cnt, case when sum(db_cnt) = 0 then '' else dval end as b_label, sum(dc_cnt) as c_cnt, case when sum(dc_cnt) = 0 then '' else dval end as c_labelfrom(
select b as val, count(b) as b_cnt, 0 as c_cnt
from A
group by b
union all
select c, 0, count(c) as c_cnt
from A
group by c
) d
group by dval
SQL Serer上的测试结果(栏位次序有变化),
total_cnt为总数, b_label为b栏值, b_cnt为b栏个数, c_labe为c栏值, c_cnt为c栏个数
这个结果跟字段是否为整型无关, 它是统计记录出现的次数
以上就是关于Qt4 连接MySql ,欲使用语句 select count(*) from table_name 来查询记录的个数全部的内容,包括:Qt4 连接MySql ,欲使用语句 select count(*) from table_name 来查询记录的个数、java如何获取SQL查询结果集中的行数和列数、sql 查询怎么统计多个字段各自的个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)