首页 > 解决方案 > 将 Python 变量传递给“LIKE”SQL 查询

问题描述

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

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

标签: pythonsql

解决方案


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

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)

推荐阅读