【发布时间】:2018-08-02 19:29:39
【问题描述】:
我正在尝试通过 LIKE 运算符匹配带有 '%' 的字符串,但由于格式混乱,这给了我一个 python TypeError。
例子:
SELECT *
FROM table
WHERE name LIKE "%exam\%ple%"
在 python 中,由于转义了 LIKE 通配符,查询看起来像这样
match = "%%exam\\%ple%%"
query = """
SELECT *
FROM table
WHERE name LIKE "%s"
""" % (match)
然而这仍然给我同样的错误。
如何在 python 中编写查询来搜索table,其中name 匹配"exam%ple" 的所有实例?
【问题讨论】:
-
你能分享你的python代码吗?
-
@Mureinik 更新见上面的编辑
-
根据docs,您可以为通配符指定一个备用转义。所以你可以做
name LIKE '%exam|%ple%' ESCAPE '|' -
你不能使用 conn.escape_string() 吗?
标签: python mysql escaping wildcard