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

Python(Mysql)参数化SQL查询报错:Not all parameters were used in the SQL statement

错误原因分析与解决方法

错误原因

你调用read_sql时,params参数传入的是集合{'value', depart_id},但SQL语句中使用的是命名占位符%(value)s,这种占位符要求params必须是字典类型(键值对形式)。集合是无序且无键值映射关系的,数据库引擎无法将depart_id关联到SQL里的%(value)s占位符,因此报错提示参数未被使用。

解决方法

将params的集合改为字典,确保键'value'对应值depart_id,即可正确匹配SQL中的命名占位符。

修正后的代码:

users_from_cur_depart = sql.read_sql(
            ('SELECT users.Name, users.Secname, users.Surname, tests.Name, results.Result, results.curdate FROM'
             ' users JOIN results  ON users.chatId = results.chatId JOIN tests ON results.testId = tests.id WHERE users.otdel = %(value)s'),
            self.connection,
            params={'value': depart_id})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:45:46