Skip to main content
 首页 » 编程设计

选择计数 (*) = 零的 Python MySQLdb 测试

2024年10月25日23JeffreyZhao

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