QSqlQuery如何获取计数值?

Posted

技术标签:

【中文标题】QSqlQuery如何获取计数值?【英文标题】:QSqlQuery how to get value of a count? 【发布时间】:2014-11-20 06:01:48 【问题描述】:

我有一个查询,它只是根据某些条件获取表的计数,例如:

QSqlQuery query("SELECT COUNT(*) FROM some_table WHERE some_value = :something");
query.bindValue(":something", "something");

我的问题是我如何得到这个结果,显然这是你会使用的地方

query.value(int);
query.value(QString);

但是文档说不应该使用 int 索引一,因为我们不知道索引是什么并且我不能使用字符串一,因为没有字段可以定义为我想要的结果。所以假设我说的是正确的,我怎么能从这个查询中将计数整数值放入一个 int 变量中

干杯

【问题讨论】:

【参考方案1】:

为字段计数创建一个别名。像这样:

QSqlQuery query("SELECT COUNT(*) CNT FROM some_table WHERE some_value = :something");

然后按名称查询CNT

【讨论】:

当我这样做时我得到QSqlQuery::value: not positioned on a valid record 你打电话给query.exec()query.first() 执行了查询是的,但没有放在第一位,现在试试 谢谢 :),读到 first() 将把自己定位在第一个完全有意义的有效记录上 可能会更改该变量名,但不想打错字!【参考方案2】:

你也可以使用:Query.next(); Query.value(0).toInt();

对于这个消息:QSqlQuery::value: 未定位在有效记录上 您应该这样做:Query.next(); 将指针更改为第一条记录!

【讨论】:

以上是关于QSqlQuery如何获取计数值?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取仅分配给一个值而没有其他值的唯一 ID 的计数?

SQL:如何获取计数值的 sum() [重复]

如何获取列中每个值的计数?

如何在 Pandas DataFrame 中一次获取多列的值计数?

如何从核心数据中获取最多计数的字符串值

如何获取列中每个不同值的计数? [复制]