我想计算查询返回的总行数。我能够检索查询返回的行,但如果我没有数据退出需要工作,该怎么办。也就是当查询从数据库返回没有va时。
我用来解决这个问题的代码是:
尝试: cur.execute(查询)
id = cur.fetchone()[0]
if(id is None):
return '-1'
else:
return id
但是当从查询中选择没有返回任何值时,这会产生帮助。(当条件不符合select语句中定义的条件时)
答案 0 :(得分:1)
cur.fetchall()
将为您提供所有行的序列。您可以查看该序列的长度,以查看是否返回了任何行。这适用于小型结果集,但对于返回大量数据的查询可能并不理想。
或者,您可以查看cur.rowcount
。 Rowcount将返回查询中的行数,如果无法确定数字,则返回-1
。设置rowcount取决于实现;几个流行的python数据库模块(最着名的是sqlite3),不要为所有查询设置rowcount。对于未设置rowcount的模块,计算结果行数的唯一方法是将完整的结果集加载到内存中。