更新Varchar字段使字段内的数字为3个小数位

时间:2011-09-29 20:43:57

标签: mysql sql regex

这是一个相当奇怪的问题......我相信它会涉及某种与MySQL的正则表达式。

假设我对表有查询,如下所示:

    >select description from foo;
 ----------------------------------
 |   description                  |
 ----------------------------------
  Kitten, 3 in., Lightsaber
  Mouse, 5.5 in., Luke Skywalker
  Dog, 9.000 in., Death Star

有没有办法更新foo,使得“inches”(in。)部分的位数为三位小数。

即。更新后:

    >select description from foo;
 -----------------------------------
 |   description                    |
 -----------------------------------
  Kitten, 3.000 in., Lightsaber
  Mouse, 5.500 in., Luke Skywalker
  Dog, 9.000 in., Death Star

非常感谢任何建议/指导!感谢。

1 个答案:

答案 0 :(得分:1)

根据the documentation,这在SELECT命令中是不可能的。

REGEXP只会告诉您它是否匹配;它不提供匹配索引或替换。

您应该将数据导出为平面文本文件,使用您喜欢的Regex启用文本编辑器对其进行处理,然后将数据重新应用到全新的数据结构中。说真的,您必须更改您的数据库设计。

<强>更新

经过进一步调查后,似乎我的答案应该是:开箱即用

检查此主题:How to do a regular expression replace in MySQL?您可以通过SQL通过UDF执行此操作。