为什么我们需要在 sqlite SELECT 语句中的变量后使用逗号?



我只是在问为什么我们在使用 sqlite 构建查询时在变量后使用'","。

我无法对此做出任何回答和解释。我刚刚看到有些人帮助解决其他问题并使用此逗号。

提前感谢。

def search_by_title(title):
conn=sqlite3.connect("lite.db")
cur=conn.cursor()
cur.execute("SELECT * FROM BOOKSTORE WHERE title=?", (title,))
row = cur.fetchone()
conn.close()
return row

因为你的变量必须是类型tupleexecute命令需要一个序列作为参数。您需要该逗号来创建tuple。 否则,它将返回与括号内的表达式类型相同的对象(例如,如果您传递str对象str- 如我的第一个示例中所示(。

print(type(("Command")))
>> <class 'str'>
print(type(("Command", )))
>> <class 'tuple'>

因为cursor.execute()期望查询的参数位于tuple中。要拥有一个变量元组,您需要在变量后添加一个逗号。

title = "string"
var = (title)   # a string
var = (title,)  # a tuple with one string element

最新更新