为什么添加另一个where子句会改变sql语句变量的类型?

mwkjh3gx  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(299)

我对这里发生的事有点不知所措。我正在为一个在线编程课程做一个挑战,解决方案是在sql查询中添加第二个where语句。但是,当我这样做时,python会给我一个typeerror,说“typeerror:'nonetype'object is not subscriptable”。我很确定这是因为最后的fetchone()[1]需要一个列表或元组来检索id。我不明白的是为什么添加where子句的第二位会改变结果的类型。我已经检查了语句本身,在数据库上测试它时它可以工作,下面代码中的第一个link\u id语句工作正常,它返回int对象,但第二个返回错误。它应该返回一个类似的int对象。

link_id = self.cursor.execute(self.sql_select + " WHERE " + self.field + "=?", (value,)).fetchone()[1]

print("link_id type:", type(link_id))

link_id = self.cursor.execute(self.sql_select + " WHERE " + self.field + "=? AND albums.artist=?", (value, self.artist_id)).fetchone()[1]

print("link_id type:", type(link_id))
q8l4jmvw

q8l4jmvw1#

因为self.artist\u id没有。当再次运行此代码块时,它将重置。

相关问题