我使用SELECT COUNT(*) FROM db WHERE <expression>
查看一组记录是否为空。所以:
>>> cnt = c.fetchone()
>>> print cnt
(0L,)
我的问题是:如何测试这种情况?
我还有许多其他方法来实现这一目标。类似下面的事情可能吗?
if cnt==(0L,):
# do something
最佳答案
fetchone
返回一行,它是一系列列。
如果您想获取序列中的第一个值,请使用[0]
。
您可以按照您的建议将该行与 (0,)
进行比较。但据我所知,通用的 DB-API 和特定的 MySQLdb 库都不能保证一行的序列类型;它可以是一个列表,也可以是一个自定义序列类。因此,依赖它是一个元组这一事实可能不是一个好主意。而且,既然不也很容易这样做,为什么不安全且便携呢?
所以:
count_row = c.fetchone()
count = count_row[0]
if count == 0:
do_something()
或者,将它们放在一行中:
if c.fetchone()[0] == 0:
do_something()
关于Python MySQLdb 测试 select count(*) = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024424/