MySQL Workbench查询offers_lowest表及7天视图报索引越界错误如何解决
你遇到的Index was out of range. Must be non-negative and less than the size of the collection报错是MySQL Workbench客户端的已知Bug,和MySQL服务端的offers_lowest表、offers_lowest_7d视图没有关联,服务端执行查询逻辑完全正常,仅Workbench渲染查询结果时会触发该异常。
可行规避方案
- 方案1:调整Workbench版本
该Bug集中出现在8.0.28、8.0.29两个小版本中,你可以升级到最新稳定版Workbench,或者回退到8.0.27及更早的版本即可解决。 - 方案2:关闭查询结果分页
无需更换版本的前提下,在查询窗口顶部点击「Limit Rows」下拉选项,选择「Don't Limit」关闭结果分页后再执行查询,即可规避该错误。 - 方案3:显式声明查询字段
该Bug的诱因之一是Workbench缓存的表元数据字段顺序和实际返回结果顺序不匹配,将SELECT * FROM offers_lowest_7d这类通配符写法替换为显式写出所有需要查询的字段,即可避免触发该问题。 - 方案4:更换客户端工具
改用mysql命令行、DBeaver、Navicat等其他MySQL客户端执行查询,不会触发该类Workbench特有Bug。
补充说明
创建视图后原表查询也触发异常,是因为创建视图的操作触发了Workbench的本地表元数据缓存刷新,缓存更新时出现了字段顺序错乱,和服务端的表结构、数据完全无关,重启Workbench也可以临时缓解该问题。
内容的提问来源于stack exchange,提问作者Alex Midmore
相关产品推荐
相关产品推荐

