如何使用Python 轉義MySQL 查詢中的% 字元
在Python 中建立MySQL 查詢時,有必要轉義某些字元,包括百分號(%)。否則可能會導致錯誤。
考慮以下查詢:
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))
執行此查詢將導致「ValueError:不支援的格式字元'Y'」異常。發生這種情況是因為 MySQL 將 % 字元解釋為 DATE_FORMAT 函數中的格式說明符,而不是將其視為文字字元。
要解決此問題,建議按照MySQL 連接器/的建議使用文字轉義/ Python文檔:
literal% = '%%' # Define a literal percent string query = """SELECT DATE_FORMAT(date_time,'{}') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""".format(literal%) cur.execute(query, (pram1, pram2))
透過另一個百分號轉義百分號字符,查詢將正確執行,而不受格式說明符的影響解釋。此方法可確保百分號在查詢中被視為文字字元。
以上是如何使用 Python 在 MySQL 查詢中轉義百分號 (%)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!