【问题标题】:Update Mysql record with partial data from same row使用同一行的部分数据更新 Mysql 记录
【发布时间】:2012-08-01 04:15:36
【问题描述】:

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

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

一如既往地感谢任何帮助寻找方向的帮助。

谢谢...

【问题讨论】:

  • 你不是说DECIMAL(9,6)吗?

标签: php mysql database


【解决方案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))

【讨论】:

    猜你喜欢
    • 2016-03-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多