【发布时间】:2020-02-12 02:16:33
【问题描述】:
我正在尝试在数据库中查询子字符串,我正在将表单中的字符串变量替换为查询。它给了我一个语法错误。
这是错误:
LINE 1: SELECT * FROM books WHERE title LIKE '%'sometext'%'
[SQL: SELECT * FROM books WHERE title LIKE '%%''%(form)s''%%']
[parameters: {'form': 'some'}]
这是查询:
books = db.execute("SELECT * FROM books WHERE title LIKE '%:form%'", {"form":form.search.data}).fetchall()
如果我在 SQL 查询中使用实际字符串,它就可以工作。这是使用变量的问题。任何帮助将不胜感激。
【问题讨论】:
-
你不能使用
format在SQL语句之外添加like操作符吗?即在您的参数字典中 -
你正在使用哪个数据库???
-
@scaisEdge 使用 postgres,CONCAT 函数有效
-
@aws_apprentice 我可以在查询之外构建字符串,让它与 CONCAT 一起工作
标签: python sql variables sqlalchemy