2011-03-01 42 views
0

我想计算查询返回的总行数。我能够检索由查询返回的行,但是如果我需要在没有数据退出的情况下工作,该怎么办?那就是当查询从数据库返回没有va时。如何计算从python中的select查询返回的值

我用来解决这个问题的代码是:

尝试: cur.execute(查询)

id = cur.fetchone()[0] 
    if(id is None): 
     return '-1' 
    else: 
     return id 

但这doenst帮助时,没有返回值从查询中选择(当条件。不符合选择语句中定义的标准)

回答

1

cur.fetchall()会给你一个所有行的序列。您可以查看该序列的长度以查看是否返回了任何行。这适用于小型结果集,但可能不适用于返回大量数据的查询。

或者,您可以查看cur.rowcount。 Rowcount将返回查询中的行数,如果不能确定数字,则返回-1。设置行数由实施决定;几个流行的python数据库模块(最值得注意的是sqlite3),不要为所有查询设置rowcount。对于不设置rowcount的模块,计算结果行数的唯一方法是将完整的结果集加载到内存中。

+0

非常感谢,它工作。 – 2011-03-01 21:29:29

+0

如果它适合你,你能否将这个答案标为正确(使用复选标记)?当他们遇到这个问题时,它将帮助其他人找到正确的答案。 – quanticle 2011-03-02 02:53:00