Cae*_*ius 7 sqlite exists python-3.x
我正在尝试检查SQLite3数据库中是否存在变量.不幸的是,我似乎无法让它工作.机场表包含3个列,其中ICAO作为第一列.
if c.execute("SELECT EXISTS(SELECT 1 FROM airports WHERE ICAO='EHAM')") is True:
print("Found!")
else:
print("Not found...")
Run Code Online (Sandbox Code Playgroud)
代码运行时没有任何错误,但结果始终相同(未找到).
这段代码有什么问题?
试试这个:
c.execute("SELECT EXISTS(SELECT 1 FROM airports WHERE ICAO='EHAM')")
if c.fetchone():
print("Found!")
else:
print("Not found...")
Run Code Online (Sandbox Code Playgroud)
返回值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
Run Code Online (Sandbox Code Playgroud)
另一方面,如果cursor.fetchone没有传递查询条件的行,则调用结果元组或无.所以在你的情况下if c.fetchone():意味着以下之一:
if (1, ):
...
Run Code Online (Sandbox Code Playgroud)
要么
if None:
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9185 次 |
| 最近记录: |