我有table
并尝试显示数据ORDER BY
但基于多列。
表格
_______________________________________________
id | title | dis | cityid | dist | queue | date
_______________________________________________
1 | abc | 1 | 1 | 0 | 1 | 2017
2 | cde | 1 | 1 | 0 | 1 | 2017
3 | efg | 1 | 1 | 0 | 1 | 2017
4 | ghi | 1 | 1 | 0 | 1 | 2017
5 |title1 | 1 | 1 | 1 | 1 | 2017
6 | title2| 2 | 1 | 2 | 2 | 2017
7 | abc | 2 | 1 | 0 | 2 | 2017
8 | cde | 2 | 1 | 0 | 2 | 2017
9 | efg | 2 | 1 | 0 | 2 | 2017
目标:
titl1
abc
cde
efg
ghi
titl12
abc
cde
efg
查询:
$sql = "SELECT * FROM district ORDER BY title ASC, queue ASC";
我也试过了:
$sql = "SELECT * FROM district ORDER BY title ASC, dist ASC";
但这些都不起作用,有什么建议吗? 此外,我可以自由添加/删除列或更改数据(如dist,队列)来实现此功能。
那些dis = 1的数据是标题1的子组,而dis = 2的数据是标题2的子组,title1和2是hading。
首先查询结果是:
abc
cde
efg
ghi
titl1
titl12
abc
cde
efg
答案 0 :(得分:0)
首先,您希望按主要组dis
排序并显示最低的第一个:
ORDER BY dis ASC
然后,在该排序中,您希望使用相同的dis
对所有标题进行排序,以获取标题(其中dist
不为零):
ORDER BY dis ASC, dist DESC
最后,你希望其余部分按字母顺序排列:
ORDER BY dis ASC, dist DESC, title ASC