Параметризованный запрос Python MySQL конфликтует с подстановочным знаком% в операторе LIKE

Мой запрос на выполнение этого не удается:

cursor.execute("SELECT name FROM products WHERE rating > %s AND category like 'Automation %'", (3));

Потому что он запутывается в процентном использовании по двум различным причинам - в качестве подстановочного знака LIKE и в качестве параметра при выполнении Python MySQL DB.

Если я запускаю этот запрос следующим образом, он работает:

cursor.execute("SELECT name FROM products WHERE rating > 3 AND category like 'Automation %'");

Если я запускаю запрос, как показано ниже, он снова работает:

cursor.execute("SELECT name FROM products WHERE rating > %s AND category = 'Automation '", (3));

Но это не решение. Я хочу использовать подстановочный знак и параметр.

Я нашел обходной путь, который должен передать мой постоянный шаблон в качестве переменной:

 cursor.execute("SELECT name FROM products WHERE rating > %s AND category like %s", (3, 'Automation %'));

Это работает, но мне нужно более элегантное решение. Я не хочу передавать константы как переменные. Мой оператор SQL может содержать много операторов LIKE в большом запросе.

Ответы на вопрос(2)

Ваш ответ на вопрос