python mysql понимание привязки параметров - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь понять, как работает привязка при использовании %(variable)s

В моем случае мой запрос: engine.execute("DELETE FROM testing WHERE test_id in %(ids)s, ids=tuple([1,2,3])))

Если я удалю (ids), оставив только %s, тогда я получаю not all arguments converted during string formatting

Почему это?

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

пара способов использования 'именованного параметра'. один из них использует словарь

engine.execute("SELECT * FROM testing WHERE test_id = %(ids)s, {"ids": ids_value,})

0 голосов
/ 14 июля 2020

Вы можете упростить это и использовать

engine.execute("DELETE FROM testing WHERE test_id IN (%s, %s, %s)", [value1, value2, value3])

, и вы можете заменить value1, value2, value3 своими значениями. %s для строк и %d для целых чисел

...