检查Python/MySQLdb中的空查询集

问题描述:

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

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: 

但是,这似乎并不奏效。

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

欢呼声

这很简单,虽然你几乎有一个更长的路。

if get_port.fetchone(): 
    do_something_here() 

你也可以使用了

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

但是,这是较长,效率较低。

+0

嘿Pydsigner,男人我是如此接近,大坝!大声笑。感谢您的回复,这很有效。非常感谢! – dlyxzen 2013-03-13 00:13:50

+0

没问题!很高兴帮助那些已经做了很多工作的人来帮助自己。顺便说一句,你可以接受和/或upvote我的答案,这将有助于其他有帮助的人再来回答你的问题。 – pydsigner 2013-03-13 00:18:46

+0

完成并完成。队友的欢呼声。 – dlyxzen 2013-03-13 00:32:55