我有一个论点tag
,我就是这样做的:
cursor.execute("SELECT * FROM posts WHERE tags LIKE '%?%'", (tag,))
但它似乎不起作用。
我是sqlite的新手,请告诉我如何修复它。谢谢!
答案 0 :(得分:5)
将通配符应用于参数,而不是SQL:
cursor.execute("SELECT * FROM posts WHERE tags LIKE ?", ('%{}%'.format(tag),))
?
SQL参数插值为您添加引号,因此您的查询最终为'%'value'%'
,这是无效的SQL。
答案 1 :(得分:1)
删除%
:
cursor.execute("SELECT * FROM posts WHERE tags LIKE ?", (tag,))
这应该按照您的需要进行格式化。例如,如果tag == 'test'
完整查询为:
SELECT * FROM posts WHERE tags LIKE 'test'