获取此查询返回的数字或行的正确方法是什么?我特别想看看是否没有返回结果。
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}
谢谢。
获取此查询返回的数字或行的正确方法是什么?我特别想看看是否没有返回结果。
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}
谢谢。
results
本身是一个行对象,在您的情况下(根据声明的print
输出判断),一个字典(您可能配置了一个类似字典的游标子类);只需访问count
密钥:
result = cur.fetchone()
print result['count']
因为您.fetchone()
只使用了一行返回,而不是行列表。
如果您不使用 dict(-like) 行游标,则行是元组,计数值是第一个值:
result = cur.fetchone()
print result[0]
以下对我有用
cur.execute('select * from table where guid = %s;',[guid])
rows = cur.fetchall()
print 'ResultCount = %d' % len(rows)
缺点: 如果您只需要计数,这对 DBMS 来说效率不高。