我有点卡在这里。我正在尝试为每条路线分配一个唯一的路线 ID,无论是单程还是往返。
例如我有两列,起点和终点:
- DC 到纽约 -> 路线 A
- 纽约到哥伦比亚特区 -> 路线 A
- 纽约到波士顿 -> 路线 B
- 波士顿到迈阿密 -> routeC
- 迈阿密到纽约 -> routeD
- 迈阿密到波士顿 -> routeC
换句话说,我如何编写查询来标记 DC 到 NYC 和 NYC 到 DC 基本上是相同的路线 (routeA) 而不是不同的路线。在这种情况下,我只关心城市对,而不关心行进方向。
PS:我用的是MySQL
Cảm ơn!
您可以通过执行以下操作来枚举对:
select least(origin, destination) as city1,
greatest(origin, destination) as city2,
(@route := @route + 1) as route_number
from t cross join
(select @route := 0) params
group by least(origin, destination), greatest(origin, destination);
或者,另一种方法是创建一个路由名称:
select t.*,
concat_ws(':', least(origin, destination) as city1,
greatest(origin, destination)
) as route_name
from t;
Tôi là một lập trình viên xuất sắc, rất giỏi!