小编Jus*_*tin的帖子

使用 GROUP BY、ORDER BY 和 GROUP_CONCAT 进行索引

解决见下文

我正在尝试同时使用GROUP BYORDER BY在我的查询中检索按难度排序的数据。我必须使用 ,GROUP BY因为GROUP CONCAT某些表(例如“lookup_peripheral”)将多个值链接到同一个键 (content_id)。我理解为什么 MYSQL 在执行此任务时不能使用索引,因为 GROUP BY 和 ORDER BY 语句不共享相同的字段。但是,我正在寻找不需要一天即可检索结果的替代解决方案。

如果省略GROUP BYorORDER BY子句,则数据库使用索引,但结果要么缺少所有外围设备,要么未按难度排序。

我在 'lookup_difficulty' 表中FROM使用,所以我可以使用该索引对结果进行排序。这些lookup_xxxxx表存储每个允许的值,然后是其他表,例如peripheral通过 content_id 将提交链接到值。一切都参考了提交content_id。该content表包含基本信息,例如成员 ID、姓名等。

如果我的帖子不够清楚,我深表歉意。

mysql> describe peripheral;
+------------------+----------+------+-----+---------+-------+
| Field            | Type     | Null | Key | Default | Extra |
+------------------+----------+------+-----+---------+-------+
| peripheral_id    | int(2)   | NO   | PRI | NULL    |       |
| …
Run Code Online (Sandbox Code Playgroud)

mysql group-by sql-order-by

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

标签 统计

group-by ×1

mysql ×1

sql-order-by ×1