MYSQL查询替换字符串的一部分

时间:2013-11-10 12:45:37

标签: mysql sql string replace substring

我有以下格式保存在数据库中的大量职位

示例:

[32.306,[7195.4,9414.24,0.005]]
[219.184,[7197.41,9416.66,-0.003]]
[161.215,[1170.26,4852.79,3.815e-04]]
[37.338,[479.163,3757.15,-0.005]]
[11.719,[12436.5,4780.36,-9.46e-04]]

坐标的格式为[DIRECTION,[X,Y,Z]]

我想将所有Z坐标替换为0.一直在努力寻找在SQL查询中执行此操作的正确方法。

2 个答案:

答案 0 :(得分:1)

我会使用SUBSTRING来切割你的字符串字段并将值转换为浮点数并将它们存储在4个不同的字段(方向,x,y和z)中。 然后,您可以轻松更新Z值(和任何其他值)

当您需要更复杂的字符串表示时,只需将4个字段连接回varchar即可连接。

答案 1 :(得分:1)

查询:

<强> SQLFIDDLEExample

CONCAT(SUBSTRING_INDEX(col,',',3), ',0]]') col

结果:

|                           COL |
|-------------------------------|
|   [32.306,[7195.4,9414.24,0]] |
| [219.184,[7197.41,9416.66,0]] |
| [161.215,[1170.26,4852.79,0]] |
|  [37.338,[479.163,3757.15,0]] |
|  [11.719,[12436.5,4780.36,0]] |