2

我似乎无法为这个问题找到一个简单的答案。我正在为 Python 使用 MySQLdb,并且正在运行一个 select 语句,我想检查是否返回了一个空的查询集。

get_port = db.cursor()
get_port.execute(""" SELECT port FROM nar_ports WHERE port=%s AND hostname=%s;""", (device_port,PE))

我努力了

if not get_port:

这不匹配。所以我尝试了

for result in get_port.fetchall():
    existing_port = result[0]
if not existing_port:

但它甚至似乎都没有进入循环。所以我试着检查长度

if len(get_port) == 0:

但似乎你不能在 sql 对象上运行 len 。所以我检查对象是否有一个无值。

if get_port = None:

但这似乎也不起作用。

我确定有一个简单的解决方案,但我似乎找不到它。任何帮助将不胜感激。提前致谢。

干杯

4

1 回答 1

3

这很简单,尽管您几乎有更长的路要走。

if get_port.fetchone():
    do_something_here()

你也可以使用

if len(get_port.fetchmany()):
    do_something_here()

但这更长,效率更低。

于 2013-03-13T00:09:38.373 回答