【问题标题】:Searching for a keyword, inputted by the user using sqlite3 and python 3.7搜索关键字,由用户使用 sqlite3 和 python 3.7 输入
【发布时间】:2020-11-01 06:28:00
【问题描述】:

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

可能的解决方案1:

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,))

这次返回一个空列表,我尝试使用普通方法硬编码一个值:

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

它确实返回了所需的值,所以代码应该输出一个结果。

【问题讨论】:

    标签: python sql sqlite keyword-search


    【解决方案1】:

    试试:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 2019-04-09
      • 2016-02-13
      相关资源
      最近更新 更多