如何转换字符串" lat,lon"进入MySql中的POINT

时间:2017-03-27 22:39:56

标签: mysql spatial

我将latlon数据存储在单个varchar中,例如" 51.51087974,-0.11101941"我想将其转换为POINT空间值。当值在单独的浮点数中时,我可以使用例如 UPDATE myTable SET coords = GeometryFromText( CONCAT( 'POINT(', lon, ' ', lat, ')' ) ); 我显然可以用空格替换我的值中的逗号以获取POINT数据,但是lat和lon则是错误的方法。我确定这一定是一项常见的操作,但对我来说,生活似乎无法找到解决方案!

1 个答案:

答案 0 :(得分:1)

您可以使用mysql的substring_index()函数来解析坐标数据:

  

在计数出现之前,从字符串str返回子字符串   分隔符delim。如果计数是正数,那么一切都在左边   返回最终分隔符(从左边开始计数)。如果算数是   否定,最终分隔符右侧的所有内容(计数   从右边)返回。 SUBSTRING_INDEX()执行一个   搜索delim时区分大小写匹配。

UPDATE myTable 
SET coords = GeometryFromText( CONCAT( 'POINT(', substring_index(coord_field, ',',-1), ' ', substring_index(coord_field, ',',1), ')' ) );