我有一张表,纬度和经度在一个字段中连接在一起,逗号/空格分隔值。这是糟糕的计划,因为现在我需要将纬度和经度分成不同的领域。
因此,我在表中添加了2个新字段,需要根据表中的现有数据填充它们。新字段设置为十进制(6,9),即使在更新查询中传递了更多的数字,数据也会显示。
看起来像这样:
ID LOCATION LAT LONG
1 43.12345,-118.12345 0.000000 0.000000
2 43.11223999, -118.43232997 0.000000 0.000000
我想写2个查询: 1)更新TABLE集LAT = LOCATION,但它取第一组字符的位置,从第一个数字到逗号之前
2)更新TABLE集LONG = LOCATION,但它取字符组的位置,来自逗号/空格","通过文本字符串的结尾。
我不确定这是否是注册事项,或者我是否应该使用substr或其他函数的组合来在文本上使用。
任何帮助找到这方面的方向一如既往地赞赏。
感谢...
答案 0 :(得分:1)
您可以完成此任务:
UPDATE YOUR_TBL
SET LAT = CAST(TRIM(SUBSTRING_INDEX(LOCATION, ',', 1)) AS DECIMAL(9,6)),
`LONG` = CAST(TRIM(SUBSTRING_INDEX(LOCATION, ',', -1)) AS DECIMAL(9,6))