使用来自同一行的部分数据更新Mysql记录

时间:2012-08-01 04:15:37

标签: php mysql database

我有一张表,纬度和经度在一个字段中连接在一起,逗号/空格分隔值。这是糟糕的计划,因为现在我需要将纬度和经度分成不同的领域。

因此,我在表中添加了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或其他函数的组合来在文本上使用。

任何帮助找到这方面的方向一如既往地赞赏。

感谢...

1 个答案:

答案 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))