afa28827b6aa5724141856852cda5177d3033075
现象:小程序“药分享”页 onShow 抛 TypeError: Cannot read properties of undefined (reading 'list') 根因在本接口:/yxe/yxe-share-detail/page?groupByProduct=true 返回 code=1 且不带 data,前端取 data.list 直接抛异常,中断整个 onShow。 原因:原 SQL 为 `SELECT a.* FROM yxe_share_detail a WHERE ... GROUP BY a.goods_name`。 MySQL 开启 ONLY_FULL_GROUP_BY 时,SELECT 列表中 a.* 的非分组列既不在 GROUP BY 内也不函数依赖于分组列,直接报 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column '...a.id' which is not functionally dependent on columns in GROUP BY clause 生产库恰好关闭了该 sql_mode 才长期未暴露,本地库(MySQL 9.7)已开启。 改法:取每个 goods_name 在**筛选结果集内**的最小 id 作为代表行, 语义与原 WHERE 之后 GROUP BY 一致。内层子查询重复同一套筛选条件, 否则按 province/city 过筛后该代表行可能不在结果集中,对应商品会整个消失。 未用窗口函数,不依赖 MySQL 8.0。 验证(本地库): - groupByProduct=true code=0,5 个去重商品(修复前 code=1) - groupByProduct + city count=3,内外层条件一致生效 - groupByProduct + goodsName count=2 - 不带 groupByProduct count=12,原有行为不变
Description
No description provided
Languages
Java
100%