postgresql和python中LIKE运算符的占位符

2024-04-23 07:51:43 发布

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

不确定如何在不损害LIKE运算符功能的情况下消除类型错误-即%表示在开始、结束或整个过程中查找字符串。你知道吗

正在尝试搜索具有可变字符380X的图书的ISBN

摆脱%以修复类型错误返回了一个空列表。你知道吗

isbn = request.form.get("search")
# Search the database for matching or part matching string, isbn, title, or author
book = db.execute("SELECT * FROM books WHERE isbn LIKE '%:isbn%'", {"isbn":str(isbn)}).fetchall()

应为:书籍及其列的列表,但出现以下错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) syntax error at or near "380" LINE 1: SELECT * FROM books WHERE isbn LIKE '%'380'%' ^

[SQL: SELECT * FROM books WHERE isbn LIKE '%%%(isbn)s%%']


Tags: orfrom功能类型列表过程错误情况
1条回答
网友
1楼 · 发布于 2024-04-23 07:51:43

您可以像这样连接% db.execute("SELECT * FROM books WHERE isbn LIKE '%%' || %(isbn)s || '%%', {"isbn":str(isbn)})

请注意,至少在psycopg2中,使用命名参数时使用%%而不是%。你知道吗

相关问题 更多 >