MySQL 子查询排序

531 阅读1分钟
**常规写法**:

这种写法由于MySql 5.7 版本后 执行优化器 会把子查询优化掉 导致排序为乱序展示

具体原因 (在mysql5.7手册的9.2.2.1中有解释:): 如果子查询不碰到 分组 / 聚合函数/limit 等会自动被优化掉

解决办法

根据业务场景在子查询里面加个分组 或者使用 limit 

当前业务场景需要 查询每一条进行排序,而MySql 的分组特性 (只要分组 字段唯一 就可以查询当前行的所有字段) 然后选择id 进行排序 (不知道这种方式好不好 手动狗头)