如何在SQLite Flask中使用位置参数执行带%符号的SELECT查询?

2024-04-20 06:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行SQL选择查询,如下所示

books = db.execute("SELECT * FROM BOOKS WHERE isbn LIKE '{%:isbn%}' or title LIKE '{%:title%}' or author LIKE '{%author%}'", {"isbn": isbn, "title" : title, "author": author}).fetchall()

但这给了我一个错误:

sqlalchemy.exc.ProgrammingError:(psycopg2.errors.SyntaxError)在“212”处或附近出现语法错误

LINE 1: SELECT * FROM BOOKS WHERE isbn LIKE '{%'212'%}' or title LIK...
[SQL: SELECT * FROM BOOKS WHERE isbn LIKE '{%%%(isbn)s%%}' or title LIKE '{%%%(title)s%%}' 
or author LIKE '{%%author%%}']
[parameters: {'isbn': '212', 'title': 'cro'}]

我不熟悉这个框架。任何帮助都将不胜感激


Tags: orfromexecutedbsqltitle错误where
1条回答
网友
1楼 · 发布于 2024-04-20 06:30:30

是否尝试将查询分隔为一个字符串和另一个字符串中的args

像这样的事

`def query_db(query, args=(), one=False):
cur = get_db().execute(query, args)
rv = cur.fetchall()
cur.close()

`

以及查询字符串“LIKE=?”

相关问题 更多 >