搜索关键字,由用户使用sqlite3和python输入 3.7

Searching for a keyword, inputted by the user using sqlite3 and python 3.7

我想使用 python 3.7 中用户输入的关键字搜索 post,我想出了两个解决方案,但 none 有效,这就是我所做的。

可能的解决方案一:

c.execute("SELECT pid FROM posts WHERE title LIKE '%?%';", (keyWord,))

但是,它给了我这个错误

Exception has occurred: ProgrammingError
Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied.

可能的解决方案2:

keyWord = "'%" + keyWord + "%'"
c.execute("SELECT pid FROM posts WHERE title LIKE ?;", (keyWord,))

这次 return 是一个空列表,我尝试使用常规方法对值进行硬编码:

c.execute("SELECT pid FROM posts WHERE title LIKE '%a%';")

它return 得到了想要的值,所以代码应该输出一个结果。

尝试:

c.execute("SELECT pid FROM posts WHERE title LIKE ?", ('%'+keyWord+'%',))

在您的情况下,您还可以使用 instr,其中 return 您正在搜索的子字符串的索引(否则为 0):

c.execute("SELECT pid FROM posts WHERE instr(title, ?) > 0", (keyWord,))