Recent work in the Python language development project, the work encountered a python connection to MySQL like query.
Because% has three special symbols in Python, such as%s. %d represents string placeholders and number placeholders, respectively.
You know. MySQL's fuzzy query also needs to use%.
We have a test table, to make a fuzzy query on the Name field, the expected SQL is as follows:
SELECT * FROM test where name is like '%abc% ';
So how do you write in Python?
sql = "SELECT * from test where name like '%%%%%s%%%% '" sql = SQL% ("abc") <span style= "White-space:pre" ></spa n> #此处进行第一次转义print SQL <span style= "White-space:pre" ></span> #Acur = yield self.pool.execute (sql, ( )) #B <span style= "font-family:arial, Helvetica, Sans-serif;" > #此处会进行第二次转义 </span>
The SQL that is printed at a:
SELECT * FROM test where name is like '%%abc%% ';
The SQL running at B is escaped for the second time, and the actual SQL is what we expected:
SELECT * FROM test where name is like '%abc% ';
MySQL database like fuzzy query in Python