【发布时间】:2013-04-05 12:17:40
【问题描述】:
我有一个像这样的表格邮政编码
Code State Region Distance
25696 1 5 150
25692 1 4 60
25691 2 3 50
25690 2 2 233
25688 3 4 450
25686 3 5 560
25685 4 7 50
12069 4 8 30
12068 4 5 60
12067 6 3 80
12066 7 1 90
现在我想对这些数据进行排序,例如如果选择了状态 4,则首先按状态 4 区域排序,然后按距离排序,然后是其余的,无论区域如何,按距离排序。
所以结果应该是这样的
Code State Region Distance
12068 4 5 60
25685 4 7 50
12069 4 8 30
25691 2 3 50
25692 1 4 60
12067 6 3 80
12066 7 1 90
25696 1 5 150
25690 2 2 233
25690 2 2 233
25686 3 5 560
首先按升序排列 4 个地区,然后按距离排序的休息日期,无论地区、州如何。
我正在尝试以下查询
SELECT region,br.state, case when state = 4 then -1
else state end as StateOrder,
FROM zipcode
ORDER BY StateOrder,region, Distance asc;
此查询首先按排序顺序给出状态 4 区域,但其余数据也按状态和区域排序,这需要修复。
请提出建议。
【问题讨论】:
-
ORDER BY FIELD(region,4) [DESC] ,distance; ?
-
抱歉没有得到这个..
-
你能根据你的样本发布你想要的结果吗?
-
编辑了我的问题,请立即查看
标签: mysql sql-order-by