mysql-connector-python 使用 WHERE IN 查询

mysql-connector-python query with WHERE IN

我正在尝试使用 mysql-connector-python 查询具有 WHERE IN 条件的 table,如下所示:

ids = (12, 31)
cursor.execute("SELECT object_name FROM object_table WHERE object_id IN %s", ids)

我收到以下错误:

mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement

我怎样才能让它工作?

您应该在 ids 中添加 "" 以成为字符串,并且 ',' 应该替换为 '%'

例如

ids = "(12, 31)"
cursor.execute("SELECT object_name FROM object_table WHERE object_id IN %s" % ids)

查询应采用字符串格式,因此您需要将变量 ids = (12, 31) 包装成类似 ids = "(12, 31)" 的字符串,并且 也不要忘记在传递一些值时添加 % 而不是 ,

ids = "(12, 31)"
cursor.execute("SELECT object_name FROM object_table WHERE object_id IN %s" % ids)

旧答案但可能对某人有帮助

这就是我所做的,如果 ids 是一个列表,它在这里可能会有所帮助。

query = "UPDATE tableName SET lspaasStatus = 1 WHERE CompletedQuizId IN " + "("+str(updatedQuizids)[1:-1]+")"
mycursor.execute(query)