小编Bob*_*odo的帖子

子查询 ORDER BY 不适用于 MySQL 5.6,但适用于 5.5

我尝试将 3 个表(产品、价格、类别)连接在一起,以从连接的表中获取最新和最低价格的结果。

我能够在 MySQL 5.5 上获得预期结果,但升级到 5.6 后,ORDER BY子查询似乎被忽略了。如何更改查询以使其工作ORDER BY

该查询应该是:

  1. 查找指定类别 ID 下的产品(例如:类别 ID 488)。
  2. 查找每种产品的最新价格。
  3. 将具有相同“匹配键”的产品分组(通过从产品名称中删除停用词生成的匹配键。由其他编程生成)
  4. 找到每个分组产品的最低价格
  5. 显示最低价格的每个分组产品信息

错误结果: 在此输入图像描述

3张表的关系如下:

  • 产品 <-> 多对多 <-> 类别
  • 产品 -> 一对多 -> 价格

表信息:

mysql> show columns from products;
+----------------+------------------+------+-----+---------------------+-----------------------------+
| Field          | Type             | Null | Key | Default             | Extra                       |
+----------------+------------------+------+-----+---------------------+-----------------------------+
| id             | int(10) unsigned | NO   | PRI | NULL                | auto_increment              |
| name           | varchar(300)     | NO …
Run Code Online (Sandbox Code Playgroud)

mysql performance order-by subquery mysql-5.6 query-performance

5
推荐指数
1
解决办法
2543
查看次数