La consulta parametrizada MySQL de Python entra en conflicto con el comodín% en la declaración LIKE

Mi consulta sobre la ejecución de esto falla:

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

Porque se confunde sobre el porcentaje de uso por dos razones diferentes: como un comodín LIKE y como un parámetro en la ejecución de Python MySQL db.

Si ejecuto esta consulta de esta manera, funciona:

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

Si ejecuto la consulta como se muestra a continuación, nuevamente funciona:

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

Pero eso no es una solución. Quiero usar tanto el comodín como el parámetro.

Encontré una solución alternativa, que es pasar mi comodín constante como una variable:

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

Esto funciona pero necesito una solución más elegante. No quiero pasar constantes como variables. Mi declaración SQL podría tener muchas declaraciones LIKE en una consulta grande.

Respuestas a la pregunta(2)

Su respuesta a la pregunta