Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子字符串SQL查询变量_Python_Sql_Variables_Sqlalchemy - Fatal编程技术网

Python 子字符串SQL查询变量

Python 子字符串SQL查询变量,python,sql,variables,sqlalchemy,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

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

这就是错误:

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, '%')" , 
     ........

您可以尝试使用concat来避免quote和windchar问题

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

不能使用
格式
在SQL语句之外添加
like
运算符吗?i、 e在您的参数字典中,您正在使用哪个数据库???@scaisEdge使用postgres,CONCAT函数worked@aws_apprentice我本可以在查询之外构建字符串,让它与concat一起工作。难道你不能使用
格式在SQL语句之外添加
之类的
操作符吗?i、 e在您的参数字典中,您正在使用哪个数据库???@scaisEdge使用postgres,CONCAT函数worked@aws_apprentice我可以在查询外部构建字符串,让它与CONCAT一起工作