首页 > 解决方案 > 如何使用命名参数样式占位符对带有 % 通配符的 Python 变量使用 SQL LIKE 运算符

问题描述

我正在尝试进行通配符搜索以查找在任何位置具有变量字符串的值,因此像 %this% 一样搜索,但我无法确定要包含在 %% 中的内容。我在不同的地方尝试了各种单引号和 % 的组合。

variable = request.form.get("input")
results = db.execute("SELECT * FROM table WHERE column LIKE :placeholder", {"placeholder": variable}).fetchall()

标签: pythonsqlpostgresqlsqlalchemypsycopg2

解决方案


这将起作用:

variable = request.form.get("input")
variable = f"%{variable}%"
results = db.execute("SELECT * FROM table WHERE column LIKE :placeholder", {"placeholder": variable}).fetchall()

推荐阅读