A consulta parametrizada do MySQL em Python está em conflito com% curinga na instrução LIKE

Minha consulta na execução disso falha:

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

Porque fica confuso sobre o uso percentual por dois motivos diferentes - como um curinga LIKE e como um parâmetro na execução do MySQL db em python.

Se eu executar esta consulta assim, ela funcionará:

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

Se eu executar a consulta como abaixo, ela funcionará novamente:

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

Mas isso não é uma solução. Eu quero usar o curinga e o parâmetro.

Eu encontrei uma solução alternativa, que deve passar no meu curinga constante como uma variável:

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

Isso funciona, mas eu preciso de uma solução mais elegante. Não quero passar constantes como variáveis. Minha instrução SQL pode ter muitas instruções LIKE em uma grande consulta.

questionAnswers(2)

yourAnswerToTheQuestion