mysql - 在 MySQL 中将带有坐标的字符串分解为纬度/经度

标签 mysql split coordinates

在我的数据库中,我有这个坐标字符串: N52.27337 E4.98162

现在我将其分为两个字段:latlon

我发现我可以使用 SUBSTRING_INDEX 来分割它。但是我如何通过查询在两个字段中更新它?

最佳答案

假设坐标字符串:N52.27337 E4.98162 存储在列 myColumn 中

substr(mycolumn, 1, locate(' ',mycolumn) -1) /* lat N52.27337 */
substr(mycolumn,locate(' ',mycolumn)+1, 100) /* E4.98162 ... 
                      100 is for get all the char after starting position */

然后您可以使用以下方式更新您的表:列名 lat 和 lng 作为带有 N52.27337 和 E4.98162 的字符串

Update my_table 
set lat =  substr(mycolumn, 1, locate(' ',mycolumn) -1),
  lng = substr(mycolumn,locate(' ',mycolumn)+1, 100)

您可以使用不使用 N 和 E 来获取值并将其存储在小数列中(使用自动转换)

Update my_table 
set lat = right(substr(mycolumn, 1, locate(' ',mycolumn) -1) , 
             length(substr(mycolumn, 1, locate(' ',mycolumn) -1)) -1),

    lng = right(substr(my_column, locate(' ',my_column)+1, 100), 
              length(substr(my_column, locate(' ',my_column)+1, 100))-1)

关于mysql - 在 MySQL 中将带有坐标的字符串分解为纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812978/

相关文章:

javascript - 如何将选定产品的行及其数量保存到 MySQL 数据库?

matlab - 如何在Matlab中将音频文件拆分为1秒长的音频文件?

c# - 如何在 Split ('' 上使用 Empty literal )

将未知的十六进制数字转换为经度和纬度

mysql - 如何连接两个表并在 hibernate 中迭代

如果为空,MySQL 从不同的表中检索

java - java中无法按 "=="或 "!="分割

java - 如何快速计算在我的点的给定距离内有哪些点

JavaScript Polymaps 库 : Get mouse coordinates

c# - C# MYSQL MySqlBulkLoader 可以动态转换数据类型吗?