获取此查询返回的数字或方法的正确方法是什么?我特意想看看是否没有结果。
sql = 'SELECT count(*) from table WHERE guid = %s;'
data=[guid]
cur.execute(sql,data)
results = cur.fetchone()
for r in results:
print type(r) # Returns as string {'count': 0L} Or {'count': 1L}
感谢。
答案 0 :(得分:22)
results
本身就是一个行对象,在您的情况下(根据声明的print
输出判断),一个字典(您可能配置了dict-like cursor subclass);只需访问count
密钥:
result = cur.fetchone()
print result['count']
因为您使用了.fetchone()
,所以只返回一行,而不是行列表。
如果不使用dict(-like)行游标,则行是元组,计数值是第一个值:
result = cur.fetchone()
print result[0]
答案 1 :(得分:0)
以下为我工作
cur.execute('select * from table where guid = %s;',[guid])
rows = cur.fetchall()
print 'ResultCount = %d' % len(rows)
<强>缺点:强> 如果您需要的全部是计数,这对DBMS来说效率不高。