我使用 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()
