【发布时间】:2014-01-03 12:57:59
【问题描述】:
我有一个论点tag,我是这样做的:
cursor.execute("SELECT * FROM posts WHERE tags LIKE '%?%'", (tag,))
但它似乎不起作用。
我是sqlite的新手,请告诉我如何解决它。谢谢!
【问题讨论】:
我有一个论点tag,我是这样做的:
cursor.execute("SELECT * FROM posts WHERE tags LIKE '%?%'", (tag,))
但它似乎不起作用。
我是sqlite的新手,请告诉我如何解决它。谢谢!
【问题讨论】:
将通配符应用于参数,而不是 SQL:
cursor.execute("SELECT * FROM posts WHERE tags LIKE ?", (f'%{tag}%',))
? SQL 参数插值会为您添加引号,因此您的查询以 '%'value'%' 结尾,这是无效的 SQL。
【讨论】:
删除%:
cursor.execute("SELECT * FROM posts WHERE tags LIKE ?", (tag,))
这应该是你想要的格式。例如,如果tag == 'test' 完整的查询将是:
SELECT * FROM posts WHERE tags LIKE 'test'
【讨论】:
tag 的任何记录,而不是仅选择 == tag。 :-)