Python 如何在sql执行期间处理行的不可用性

Python 如何在sql执行期间处理行的不可用性,python,mysql-python,Python,Mysql Python,当此id没有行时,您应该如何处理异常。调用代码应该如何处理此异常 def function(id) mysql_conn = MySQLdb.connect(..) cursor = mysql_conn.cursor() cursor.execute("""select val from fooo where id = %s""", (id)) row = cursor.fetchone() return row[0] 每当我发现自己只获取

当此id没有行时,您应该如何处理异常。调用代码应该如何处理此异常

  def function(id)
    mysql_conn = MySQLdb.connect(..)    
    cursor = mysql_conn.cursor()
    cursor.execute("""select val from fooo where id = %s""", (id))
    row = cursor.fetchone()
    return row[0]

每当我发现自己只获取一行时,我总是喜欢使用以下构造(尽管不是最佳性能)

cursor.execute("SELECT * FROM foo;")
for row in cursor:
    return row
# No row handling behind the loop.
return "No rows found"
这在循环的第一次迭代运行时有效地返回。只有当结果集中至少有
1
行时,才会发生这种情况。否则将在for循环后运行代码


您可以引发自定义异常,或返回一个特殊值,如
None
,让调用函数清楚地知道没有行。

我实际上需要返回一个整数值,所以我不想字符串化值。@Joe,当然,您可以返回任何您想要的值,而不是字符串。例如
return0
return-1
也可以工作。