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.