首页 >数据库 >mysql教程 >如何使用 Python 在 MySQL 查询中转义百分号 (%)?

如何使用 Python 在 MySQL 查询中转义百分号 (%)?

DDD
DDD原创
2024-11-18 01:08:02246浏览

How to Escape Percent Signs (%) in MySQL Queries Using Python?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn