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

Python查询MySQL报Not all parameters were used in the SQL statement错误怎么解决

报错原因
  • 你调用self.cur.execute()方法时传入了参数元组(date,),但你的查询SQL语句中没有对应的参数占位符(比如%s),MySQL连接器检测到传入的参数没有被SQL使用,就抛出了这个错误。
  • 你的需求是查询整张my_sheet_detail表的全量数据,本身也不需要传入date参数做过滤,传多余参数属于代码逻辑和需求不匹配。
修复方案

直接删除execute方法里的第二个参数即可,修改后的load_positions方法代码如下:

def load_positions(self, date: dt.date, manual: bool = False) -> List[Route]:
    query = f"""
        SELECT  *
        FROM `my_sheet_detail` 
        """
    # 移除多余的参数(date,)即可
    self.cur.execute(query)
    data = self.cur.fetchall()
    return data

如果后续你需要按日期过滤数据,可以把SQL改成带占位符的写法,示例如下:

query = f"""
    SELECT *
    FROM `my_sheet_detail` 
    WHERE date_column = %s
    """
self.cur.execute(query, (date,))

注意把示例中的date_column替换成你表中实际存储日期的字段名。

可选优化

如果你确定后续不需要按日期筛选数据,也可以直接把load_positions方法里没用的date、manual参数删掉,避免冗余代码,修改后的方法定义为:

def load_positions(self) -> List[Route]:

对应调用的地方也要改成routes = dbc.load_positions()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:27:04