我在使用python的MySQLdb执行带有通配符的查询时遇到问题。
我的代码
sql = "SELECT COUNT(id) FROM table WHERE name LIKE '%s%'"
with con:
cur.execute(sql, (name,))
这件事很复杂,是字符串%s后的%。根据文档,如果没有通配符%,我可以LIKE %s
进行操作,但是我不知道如何从那里着手解决我的问题。
我在堆栈Python MySQL parameterized query conflicts with % wildcard in LIKE statement上发现了这个问题,该问题与我的问题相似,但是没有动态参数。我尝试像上面的链接一样转义通配符,但是仍然出现SQL语法错误。
有人知道吗?
谢谢
答案 0 :(得分:0)
您应该将通配符放入参数中。
break;
请注意,您不应该在SQL内部为占位符使用引号;这些是由db-api添加的。