将 Python 变量传递到“LIKE”SQL 查询中

时间:2021-05-04 09:55:43

标签: python sql

我试图将我的变量传递到带有“LIKE”的语句中,但我遇到了各种格式错误。我尝试了 cursor.execute("SELECT title FROM movies WHERE title LIKE '%%s%'" %Keyword) 和它的其他变体,但没有任何效果。如何让 LIKE 语句解释我的变量?

我使用 MySQL 工作台,“关键字”变量将来自 FORM 标记的输入存储在 html 中。整个项目是基于做一个搜索网站。

2 个答案:

答案 0 :(得分:0)

根据文档,您不应该使用这种格式化字符串的方式:

https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting

<块引用>

注意这里描述的格式化操作展示了多种 导致许多常见错误的怪癖(例如未能 正确显示元组和字典)。使用较新的格式 字符串文字、 str.format() 接口或模板字符串可能 帮助避免这些错误。这些替代方案中的每一个都提供了自己的 简单性、灵活性和/或 可扩展性。

.format 示例:

query = "SELECT title FROM movies WHERE title LIKE '%{s}%'".format(s=Keyword)

cursor.execute(query)

答案 1 :(得分:0)

您可以使用 format :

 cursor.execute("SELECT title FROM movies WHERE title LIKE '%{}%'".format(Keyword))