原因:执行cursor.execute(query)时,如果有其他参数,那么sql语句和参数之间用 % 连接,但模糊查询中的 % 会被误认为是用来连接字符串的 % , 所以例子中 ‘%标’ 会出现不识别的情况,即unsupported format character。
解决方法:如果 %s 前后有 % 的时候,想要将其当做普通的 % ,则使用 %%。
比如:
user_name = 'admin'
search_sql = f"SELECT t.`USERNAME` FROM account t WHERE t.`USERNAME` LIKE '%%{user_name}%%';"