如何在Python中计算SELECT查询返回的值

1 投票
1 回答
4541 浏览
提问于 2025-04-16 12:46

我想统计查询返回的总行数。我可以获取查询返回的行,但如果没有数据呢?也就是说,当查询从数据库中没有返回任何值时,我该怎么处理。

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

try: cur.execute(query)

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

但是当查询没有返回任何值时,这段代码就没什么用处了。(也就是当条件没有满足选择语句中定义的标准时)

1 个回答

2

cur.fetchall() 这个命令会给你所有行的数据,像一串序列一样。你可以通过查看这个序列的长度来判断有没有返回任何数据。这种方法适合小规模的数据结果,但如果查询返回的数据量很大,就不太合适了。

另外,你也可以查看 cur.rowcount。这个值会告诉你查询返回了多少行数据,如果无法确定行数,它会返回 -1。具体是否设置这个值取决于具体的实现;一些常用的 Python 数据库模块(比如 sqlite3)并不会对所有查询都设置这个值。对于那些不设置 rowcount 的模块,唯一的方法就是把所有的结果加载到内存中来计算行数。

撰写回答