我正在尝试检查 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(使用前将#替换为@)