搜索关键字,由用户使用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,))
我想使用 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,))