mysql查询路径/半径

时间:2013-02-07 03:53:00

标签: mysql sql

我有2个表:citycity_neighbor

city包含所有城市的列表,而city_neighbor包含给定城市的邻居:insert into city_neighbor (city_id, neighbor_id) Values(1,2) - 其中neighbor_id是来自{{1}的另一个城市的ID表。没什么太花哨的。

我必须构建的是一个页面,用户可以在该页面中选择给定半径内的所有城市。例如:选择所有邻近芝加哥的城市,例如5个城市。重要提示:它是5个城市的半径。我不能使用半径英里/公里,我需要使用这个半径的路径样式(请不要拉/长相关的响应)。

第二种情况:用户想要选择按跳跃次数递增的所有城市(跳跃是一个必须通过的城市才能从A(芝加哥)到B)。

有什么想法吗?

P.S。我的数据库包含约8,000个城市。

1 个答案:

答案 0 :(得分:3)

FUNCTION: CountNeighbors
IMPORT: city, depth
EXPORT: neighbors
ALGORITHM:
   neighbors = SET
   ++depth
   direct_neighbors = SELECT NEIGHBORS OF city
   neighbors += direct_neighbors
   IF depth < 5
       FOR EACH neighbor IN direct_neighbors
           neighbors += CountNeighbors(neighbor, depth, result)