【问题标题】:Checking for empty queryset in Python/MySQLdb在 Python/MySQLdb 中检查空查询集
【发布时间】:2013-03-13 00:07:46
【问题描述】:

我似乎找不到这个问题的简单答案。我正在为 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:

但这似乎也不起作用。

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

干杯

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

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

    if get_port.fetchone():
        do_something_here()
    

    你也可以使用

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

    但这样会更长,效率也更低。

    【讨论】:

    • 嘿,Pydsigner,我离得太近了,大妈!哈哈。感谢您的回复,这很有效。非常感谢!
    • 没问题!很高兴帮助那些已经做了很多事情来帮助自己的人。顺便说一句,您可以接受和/或支持我的回答,这将有助于其他乐于助人的人再次回答您的问题。
    • 谢谢你,也一样。
    猜你喜欢
    • 2012-12-04
    • 2010-11-26
    • 2012-04-14
    • 2010-12-03
    • 2018-01-02
    • 2015-01-18
    • 1970-01-01
    • 2013-06-30
    • 2015-10-19
    相关资源
    最近更新 更多