Запрос в предложении на Python (pymysql и mysql.connector)

Я хочу использовать этот запрос:

select x from y where z in ("a", "b", "c")

У меня есть pymysql и mysql.connector для MySQL с Python.

Это работает с pymysql:

args = ["a", "b", "c"]
db = cur.execute('select x from y where z in %s',(tuple(args),))

Но это не работает с mysql.connector. Это дает мне ошибку, например, объект «MySQLConverter» не имеет атрибута «_tuple_to_mysql».

У pymysql есть отличное решение, но я не мог понять это на mysql.connector. Не могли бы вы мне помочь?


person Rictrunks    schedule 31.05.2014    source источник
comment
Также SQLAlchemy WHERE IN single value (необработанный SQL). Ответ на вопрос, на который я вас связал, использует ? в качестве заполнителя, вместо этого просто используйте %s в качестве заполнителя параметра SQL. Вторая ссылка в этом комментарии генерирует :i0 и т. д. именованные заполнители; более сложный и, вероятно, здесь не нужен.   -  person Martijn Pieters    schedule 31.05.2014


Ответы (1)


как насчет

db = cur.execute('select x from y where z in (%s,%s,%s)',tuple(args))
person Fabricator    schedule 31.05.2014