如何使用 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中文网其他相关文章!