一尘不染

如何在sqlite中使用占位符执行SELECT * LIKE语句?

sql

我有一个争论tag,我这样说道:

cursor.execute("SELECT * FROM posts WHERE tags LIKE '%?%'", (tag,))

但它似乎不起作用。
我是sqlite的新手,请告诉我如何解决它。谢谢 !


阅读 423

收藏
2021-03-10

共1个答案

一尘不染

将通配符应用于参数,而不是SQL:

cursor.execute("SELECT * FROM posts WHERE tags LIKE ?", (f'%{tag}%',))

?SQL参数插值增加了报价给你,所以你的查询结束的'%'value'%',这不是有效的SQL。

2021-03-10