0

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

例子:

[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]]

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

4

2 回答 2

1

询问:

SQLFIDDLE示例

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]] |
于 2013-11-10T13:55:50.477 回答
1

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

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

于 2013-11-10T12:49:18.747 回答