【发布时间】:2017-12-29 17:21:00
【问题描述】:
假设我有这个数据集:
Items Category ID
1 1
2 2
3 2
4 3
5 3
6 4
现在我想对这个集合进行排序,使其每个类别只使用 1 个项目,所以我得到项目:1、2、4、6、3、5。如您所见,项目 3 和 5 放在最后,因为已经有类别 2 和 3 的项目
这是一个 MySQL 数据集,所以如果它可以与存储过程/查询一起使用,那就更好了,否则 PHP 代码没有问题。
不知道这个技术怎么称呼? 有吗?
编辑:
我知道 GROUP BY 的工作原理。但要记住。我正在对一个大型数据集进行排序,并且在此示例中使用 GROUP BY 项目 3 和 5 消失。
我想循环到所有类别,如 1、2、3、4,并从中选择第一个值,并以此为基础确定项目的顺序。当仍有项目时,循环必须运行,然后将项目 3 和 5 放在末尾。
我知道我的描述很难!对不起
【问题讨论】:
-
能否再澄清一下您的问题?据我所知,3和5没有放在最后。 6 和 4 在最后。
-
我想按类别 id 排序,但只使用其中一项。所以它被排序为:1,2,4,6,3。它使用类别 1 2 3 4 2 3。明白吗?
-
一种选择是将数组转换为集合实现并对集合进行排序。 Laravel 的集合 can be installed separately 会让这变得相当简单。
-
如果您只是像输入一样添加所需的表格格式的输出,这将有助于避免混淆。