Python MySQLdb 测试 select count(*) = 0

标签 python mysql-python

我使用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/

相关文章:

python - 以编程方式列出对象属性及其值?

Python mysqldb : Library not loaded: libmysqlclient. 18.dylib

python - 将大型 SQL 查询移至 NumPy

python - MySQLdb.cursor.execute 无法运行多个查询

python - 将制表符分隔的值插入数据库

python - 将 python 变量传递到 mysql select 语句中

python - 在 Django 中启动后台任务的简单方法

python - 是否可以在列表理解中创建和引用对象?

python - 将值设置为 Pandas 数据帧的切片

python - 导入请求处理器模块 Django 时出错