sql-server - 如何在 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()
这是我功能的一部分。我希望用户能够搜索一本书并将他们的结果存储在“搜索”中,并且我希望能够从至少具有“搜索”的数据库列表中提取任何结果,即使标题不是完全的。例如,如果用户正在寻找一本名为“渔夫”的书,但用户只输入“渔夫”,我希望查询能够拉出“渔夫”。
解决方案
book = db.execute(text("SELECT * FROM books WHERE title LIKE :search"),
{"search": f"%{search}%"}).fetchall()
错误出现在我的字典中。要使用 '% %' 查找用户输入的变量,必须在字典中进行修改。
推荐阅读
- sql - 比较多个表
- python-3.x - 条件错误:“如果不是”条件未运行导致该条件内的变量未定义
- java - 为什么当消息正文不是时 JAX-RS 参数为空?
- javascript - 在匿名函数中获取函数的函数名
- c# - 在 ASP.NET MVC 中按数字搜索
- react-native - Expo 的 OTA 更新是否会在从商店全新下载后首次开放时启动?
- dart - 没有小部件时如何伪造上下文?
- java - Spring Batch 中的复制作业
- android - 启动时调试 apk 的 Gradle 任务
- drools - 如何更改事实参数的类型(字符串为双精度)以在 Drools 中进行正确比较?