How do I escape % from python mysql query

Question:

How do I escape the % from a mysql query in python.

For example

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))

gives me a “ValueError: unsupported format character ‘Y'” exception.

How do I get mysqldb to ignore the %? Can’t see this in any of the docs.

Asked By: Daniel

||

Answers:

Literal escaping is recommended by the docs:

Note that any literal percent signs in the query string passed to execute() must be escaped, i.e. %%.

Answered By: SilentGhost
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.