Python 检查 SQLite3 中是否存在

2023-11-27

我正在尝试检查 SQLite3 数据库中是否存在变量。不幸的是我似乎无法让它工作。 airports 表包含 3 列,其中 ICAO 为第一列。

if c.execute("SELECT EXISTS(SELECT 1 FROM airports WHERE ICAO='EHAM')") is True:
    print("Found!")
else:
    print("Not found...")

代码运行没有任何错误,但结果始终相同(未找到)。

这段代码有什么问题?


试试这个:

c.execute("SELECT EXISTS(SELECT 1 FROM airports WHERE ICAO='EHAM')")

if c.fetchone():
    print("Found!")

else:
    print("Not found...")

返回值cursor.execute是游标(或者更准确地说是对其自身的引用)并且独立于查询结果。您可以轻松检查:

 >>> r = c.execute("SELECT EXISTS(SELECT 1 FROM airports WHERE ICAO='EHAM')")
 >>> r is True
 False
 >>> r is False
 False
 >>> r is None
 False

 >>> r is c
 True

另一方面,如果你打电话cursor.fetchone如果没有通过查询条件的行,则返回结果元组或 None。所以在你的情况下if c.fetchone():意味着以下之一:

if (1, ):
    ...

or

if None:
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 检查 SQLite3 中是否存在 的相关文章

随机推荐