不确定如何在不损害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%%']
您可以像这样连接%
db.execute("SELECT * FROM books WHERE isbn LIKE '%%' || %(isbn)s || '%%', {"isbn":str(isbn)})
请注意,至少在psycopg2中,使用命名参数时使用%%而不是%。你知道吗
相关问题 更多 >
编程相关推荐