首页 > 解决方案 > 如何在 python 中正确使用 LIKE 和 '%%' 在数据库列表中搜索存储在占位符变量中的部分响应?

问题描述

search = request.form.get("search")

book = db.execute("SELECT * FROM books WHERE title = :search OR author = :search OR isbn = :search OR title LIKE :search",{"search": search}).fetchall()

这是我功能的一部分。我希望用户能够搜索一本书并将他们的结果存储在“搜索”中,并且我希望能够从至少具有“搜索”的数据库列表中提取任何结果,即使标题不是完全的。例如,如果用户正在寻找一本名为“渔夫”的书,但用户只输入“渔夫”,我希望查询能够拉出“渔夫”。

标签: sql-serverpython-3.xdatabaseflask

解决方案


book = db.execute(text("SELECT * FROM books WHERE title LIKE :search"),
                     {"search": f"%{search}%"}).fetchall()

错误出现在我的字典中。要使用 '% %' 查找用户输入的变量,必须在字典中进行修改。


推荐阅读