gpt4 book ai didi

mysql - 使用 CONCAT/GROUP CONCAT 合并 mysql 中的多行

转载 作者:行者123 更新时间:2023-11-29 06:04:30 31 4
gpt4 key购买 nike

我有一个非常大的表(几百万条记录)。表中的列 A 目前是这样的:id、道路名称、纬度、经度,其中 id 是自动增量 PK。

目前,1 个道路名称可以在表中包含多个条目,因为每条道路都映射到多个(纬度、经度)组合。

我想做的是将道路名称作为主键,然后删除纬度和经度列。然后添加一列几何类型,其中包含代表道路的(经纬度)点列表。

我可以在java + mysql中轻松地做到这一点,但我想知道是否有一种方法可以通过编写几个嵌套查询来轻松地做到这一点?基本上我已经有一个填充的表 A 和另一个表 B,其中只有道路名称为 PK 和第二列的几何类型。我想要的是将每个唯一道路名称的所有经纬度合并到几何点列表中并插入到表 B 中。是否可以在 mysql 中执行此操作?

注意:不必担心道路名称的唯一性,因为这只是一个示例,而不是实际场景。谢谢!

更新:concat/group_concat 函数返回一个字符串。由于我的列类型是 Geometry,因此我只需将此字符串传递给 MySQL Spatial Extension 中的 GeomFromText() 空间函数即可获取几何格式。

最佳答案

这将使用逗号分隔的 <lat>x<lon> 列表填充几何列对。

SELECT road_name, GROUP_CONCAT(CONCAT(lat,'x',lon)) geometry
FROM road_table
GROUP BY road_name

关于mysql - 使用 CONCAT/GROUP CONCAT 合并 mysql 中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204737/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com