我正在尝试执行以下查询:
select count(*) from video where territories like %ZW%
这是我目前所拥有的,但它引发了一个错误:
for territory_code in ALL_TERRITORIES:
sql = "select count(*) from video where territories like %{}%".format(territory_code)
cursor.execute(sql)
我在这里做错了什么,以及如何正确地缩放%%?
答案 0 :(得分:2)
更好的方法如下:
sql = "select count(*) from video where territories like %s"
cursor.execute(sql, ('%' + territory + '%',))
通过这种方法,您可以参数化查询而无需担心转义,更重要的是,无需担心security vulnerabilities。
答案 1 :(得分:1)
他们这样做,你需要一个带单引号的文字字符串。
select count(*) from video where territories like '%ZW%'
答案 2 :(得分:0)
也许你可以在之后使用简单的引号:
"select count(*) from video where territories like '%{}%'"
答案 3 :(得分:0)
你错过了'' %%周围的单引号。请改用:
"select count(*) from video where territories like '%{}%'"