我使用 psycopg 在 python 中有这个 sql 查询:
cr.execute('select id from test_table where va1_1=%s
order by val_2 desc limit 1',(id, ))
如果查询有多个记录,这样我只获取最后一个。然后我将结果分配给一个变量:
x=cr.fetchone()[0]
但是,有时查询不返回任何记录,用 cr.fetchone 赋值自然会出错。在尝试分配之前首先检查查询是否会返回记录的正确方法是什么?
我尝试了一个简单的:
if cr.exec....:
x=cr.fetchone()[0]
但似乎它总是返回 False 并且总是不执行 fetchone。