python - 子字符串 SQL 查询变量

标签 python sql variables sqlalchemy

我正在尝试在数据库中查询子字符串,我正在用表单中的字符串变量替换查询。它给了我一个语法错误。

这是错误:

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 查询中使用实际的字符串,它就会起作用。这是使用变量的问题。任何帮助将不胜感激。

最佳答案

您可以尝试使用 concat 来避免引用和 Windchar 问题

books = db.execute("SELECT * 
      FROM books 
      WHERE title LIKE concat('%',:form, '%')" , 
     ........

关于python - 子字符串 SQL 查询变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58393997/

相关文章:

python - ElasticBeanstalk 突然开始无法部署 Django 应用程序,并出现 "Cannot use ImageField because Pillow is not installed"异常

python - 使用 Python BeautifulSoup 解析 HTML 表格

python - 使用另一个列表中的键值对更新 python 字典列表

mysql - SQL从数据库中拉取随机图像

sql-server - 如何在 SQL Server 中调用变量的方法

python - 逐像素读取图像(ndimage/ndarray)

mysql - 使用 SQL 触发器在某些条件下更新记录后删除记录

mysql - 基于行数的 SQL 更新

PHP: session 变量

variables - 找出Pyomo模型不可行的原因