【问题标题】:How to do a SQL query using a string wildcard and LIKE?如何使用字符串通配符和 LIKE 进行 SQL 查询?
【发布时间】:2020-06-12 15:43:57
【问题描述】:

我是 python 新手,目前正在学习将 SQL 与 python 一起使用。我有以下代码:

word = input("Enter a word: ")
query = cursor.execute("SELECT * FROM Dictionary WHERE Expression LIKE '%s%' " % word)
results = cursor.fetchall()

第二行抛出一个错误,因为我认为我不能像那样使用 '%s%'?我将如何改变它以便能够完成这项工作?我希望能够将所有相关条目返回给用户输入。因此,如果用户输入“rain”,那么我希望查询返回所有可能的结果,例如“下雨”、“下雨”等。谢谢。

【问题讨论】:

标签: mysql python-3.x


【解决方案1】:

你可以试试

query = cursor.execute(f"SELECT * FROM Dictionary WHERE Expression LIKE '%{word}%' ")

【讨论】:

    【解决方案2】:

    您应该使用cursor.execute() 参数替换而不是字符串格式,以防止 SQL 注入。

    然后使用CONCAT() 将搜索字符串用% 包围。

    query = cursor.execute("SELECT * FROM Dictionary WHERE Expression LIKE CONCAT('%', %s, '%' "), (word,))
    

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2019-09-18
      相关资源
      最近更新 更多