27

获取此查询返回的数字或行的正确方法是什么?我特别想看看是否没有返回结果。

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}

谢谢。

4

2 回答 2

45

results本身是一个行对象,在您的情况下(根据声明的print输出判断),一个字典(您可能配置了一个类似字典的游标子类);只需访问count密钥:

result = cur.fetchone()
print result['count']

因为您.fetchone()只使用了一行返回,而不是行列表。

如果您使用 dict(-like) 行游标,则行是元组,计数值是第一个值:

result = cur.fetchone()
print result[0]
于 2013-10-04T22:35:17.187 回答
-4

以下对我有用

cur.execute('select * from table where guid = %s;',[guid])
rows = cur.fetchall()
print 'ResultCount = %d' % len(rows)

缺点: 如果您只需要计数,这对 DBMS 来说效率不高。

于 2017-05-31T01:27:25.243 回答