【发布时间】:2012-08-30 20:11:36
【问题描述】:
我有一个非常大的表(几百万条记录)。表中的列说 A 目前是这样的: id, road name, lat, lon 其中id是自增PK。
目前 1 个道路名称在表中可以有多个条目,因为每条道路都映射到多个 (lat, lon) 组合。
我想要做的是将道路名称作为主键,然后删除 lat 和 lon 列。然后添加一个几何类型的列,该列将包含代表道路的(纬度)点列表。
我可以在 java + mysql 中轻松做到这一点,但我想知道是否有一种方法可以通过编写几个嵌套查询来轻松做到这一点?基本上我已经有一个填充表 A 和另一个表 B,其中只有道路名称为 PK 和几何类型的第二列。我想要的是将每个唯一道路名称的所有纬度、经度组合到一个几何点列表并插入到表 B。是否可以在 mysql 中执行此操作?
注意:不要担心道路名称的唯一性,因为这只是一个示例,而不是实际情况。谢谢!
更新:concat/group_concat 函数返回一个字符串。由于我的列类型是几何,我只需将此字符串传递给 MySQL Spatial Extension 中的 GeomFromText() 空间函数以获取几何格式。
【问题讨论】: