在我的数据库中,我有这个坐标字符串: N52.27337 E4.98162
现在我将其分为两个字段:lat 和 lon。
我发现我可以使用 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/