【问题标题】:sqlite3.OperationalError: near "%": syntax error searching wildcardsqlite3.OperationalError:“%”附近:搜索通配符的语法错误
【发布时间】:2021-10-18 12:26:30
【问题描述】:

我正在尝试使用通配符和占位符进行查询以搜索所有名称

cursor.execute("SELECT * FROM article WHERE name LIKE %(?)%", (letter,)).fetchall()

但我不断收到此错误

sqlite3.OperationalError: near "%": syntax error

【问题讨论】:

    标签: python sqlite sql-like


    【解决方案1】:

    您必须将通配符连接到占位符:

    cursor.execute("SELECT * FROM article WHERE name LIKE '%' || ? || '%'", (letter,)).fetchall()
    

    【讨论】:

    • 或者'... LIKE ?', (f'%{letter}%',),我觉得更明智。
    • @darknator 你错过了单引号。
    • 你的权利是否有任何在线文档我似乎找不到任何文件
    • @deceze 我总是用?占位符。如果可能的话,我会尽量避免 sql 查询的格式字符串和字符串插值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多