Maison >base de données >tutoriel mysql >Comment échapper au caractère « % » dans les requêtes MySQL à partir de Python ?
% d'échappement dans les requêtes MySQL à partir de Python
Lors de l'utilisation de la bibliothèque MySQLdb de Python, rencontre d'une exception "ValueError : caractère de format non pris en charge" lors de l'exécution d'un une requête avec un caractère "%" peut être frustrante. En effet, MySQL traite le caractère "%" comme un caractère générique et l'interprète comme faisant partie de la requête plutôt que comme un littéral.
Pour résoudre ce problème, la documentation recommande d'échapper les signes littéraux "%" dans le chaîne de requête passée à exécuter(). En utilisant un double % (%%), MySQL reconnaîtra le « % » comme un caractère littéral plutôt que comme un caractère générique.
Par exemple, la requête dans la question d'origine peut être modifiée comme suit :
query = """SELECT DATE_FORMAT(date_time, '%%Y-%%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""" cur.execute(query, (pram1, pram2))
En échappant aux signes littéraux "%", MySQL reconnaîtra désormais "Y" et "m" comme des caractères spécifiques dans la chaîne DATE_FORMAT et l'erreur sera évitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!