我有以下格式保存在数据库中的大量职位
示例:
[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查询中执行此操作的正确方法。
答案 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]] |