Escaping von % in MySQL-Abfragen von Python
Beim Ausführen einer MySQL-Abfrage, die ein %-Zeichen in Python enthält, kann es zu einem Fehler kommen auf seine besondere Bedeutung als Formatspezifizierer. Um dies zu verhindern, müssen Sie das %-Zeichen maskieren, um anzugeben, dass es als Literal behandelt werden soll.
Lösung: Literal-Escapezeichen
Der empfohlene Ansatz zum Escapezeichen von % verwendet literales Escapen, wie in der MySQL-Dokumentation beschrieben. Dazu gehört die Verdoppelung des %-Zeichens, d. h. das Ersetzen von % durch %%.
Betrachten Sie beispielsweise die folgende Abfrage:
query = """SELECT DATE_FORMAT(date_time,'%%Y-%%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;"""
Durch das Maskieren der %-Zeichen in der Datumsformatzeichenfolge erreichen wir effektiv Weisen Sie MySQL an, sie zu ignorieren und als Literalzeichen zu behandeln. Wenn Sie diese Abfrage ausführen, werden die gewünschten Ergebnisse erzielt, ohne dass der Formatspezifiziererfehler ausgelöst wird.
Das obige ist der detaillierte Inhalt vonWie entkomme ich das %-Zeichen in MySQL-Abfragen von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!