You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用sqlite3查询字段以指定字符开头报语法错误如何解决?

错误原因

  • 占位符?不需要用单引号包裹:你在SQL中写的'?%'会被sqlite3识别为普通字符串,不会当作参数占位符处理,直接触发语法解析错误。
  • 通配符%不能直接拼接在SQL语句的占位符后,需要和参数值合并后再传入。
  • execute方法的第二个参数必须是元组类型,哪怕只有一个参数,也要加后缀逗号,否则传入单个字符串会被拆分为多个单字符参数,触发参数不匹配错误。
  • 额外注意:你的需求是查询姓氏以指定字母开头的演员,应该匹配Surname字段而非Name字段;同时确认表名是否正确,你代码中写的表名是acteurs,如果实际表名为Actors需要同步修改。

正确修改后的代码

如果按需求匹配姓氏字段,代码修改如下:

# 通配符和参数提前拼接,参数以元组形式传入
cur.execute("""
    SELECT name, surname FROM acteurs WHERE surname LIKE ?
""", (firstletter + '%',))
actors = cur.fetchall()

如果要保留原逻辑按Name字段匹配、表名确认为acteurs,修改为如下即可:

cur.execute("""
    SELECT name, surname FROM acteurs WHERE name LIKE ?
""", (firstletter + '%',))
actors = cur.fetchall()

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:01