weicw-dshsa afa28827b6 fix(药分享): 商品清单去重改用代表行,修复 ONLY_FULL_GROUP_BY 报错
现象:小程序“药分享”页 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,原有行为不变
2026-10-12 14:49:30 +08:00
2023-06-03 23:56:49 +08:00
2026-10-10 21:34:36 +08:00
2023-06-03 23:56:49 +08:00
2026-10-10 21:34:36 +08:00
S
Description
No description provided
1.6 MiB
Languages
Java 100%