好的,这是我想做的:
我不想在我的sql查询中执行排序
我的学生地址数据库架构如下所示:
城市(必填)|区域(必填)|ROAD(可选)|BUILDING_NAME(可选)
我想对学生进行分类
- CITY,然后在城市内按
- 区域,区域内按对学生进行排序(分组)
- ROAD,注意2个城市有可能拥有相同的道路名称,soo
这就是我迄今为止所做的:
我已经设法按城市对学生进行了排序(分组),(这是一个对象$student,它不仅具有地址,还具有与学生相关的所有信息,并且不按城市名称排序),现在在城市内,我想对属于城市内同一区域和同一道路的学生进行分组。我如何才能实现这个
我希望我已经解释清楚了
示例:
NAME CITY AREA ROAD BUILDING NAME
- >1。demo_student纽约市中心四广场海雾
- 纽约zzpqzzardini样品
- 检查孟买mg路abc
- 你好,孟买和德里,一些演示
- 萨米·孟买
输出
NAME CITY AREA ROAD BUILDING NAME
- >1。demo_student纽约市中心四广场海雾
- 纽约zzpqzzardini样品
- 你好,孟买和德里,一些演示
- 萨米·孟买
- 检查孟买mg路abc
这听起来像是usort和自定义函数的一项工作,用于比较两行并确定哪一行先执行。你可以把它写得任意复杂。
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value'n";
}
?>
The above example will output:
0: 1
1: 2
2: 3
3: 5
4: 6
现在,考虑到这一点,看在上帝的份上,忽略这个答案,并在SQL查询中执行它。它将比PHP更快,消耗更少的资源,并且如果您想更改订单中的某些内容,更容易更新。
通常,这是使用列表>的映射来完成的
实施可能会在潜在成员(学生)身上循环,并将他们发送到适当的列表中。地图可以动态填充组,如果您知道所有组,也可以预先填充。
这个想法不是确定两个学生属于同一组,而是确定每个学生所属的组。
另外,当你指的是团体时,请不要说"排序"。