如何使用RegEx更新VARCHAR列值?

时间:2011-09-15 19:42:26

标签: mysql regex replace varchar

我需要将MySQL数据库中VARCHAR列的值从YYMMDDSXXXXX更新为YYMMDDSXXXX,其中YY为年(即2011年为11),MM为月(即9月为09),DD为日(即15) ,S是一位数的订单号(1到0),XXXXX是从00001到99999的序号。

我需要将序号减少十倍,这应该从0001到9999。

我想到了类似的东西:

  

更新TABLE_NAME设置FIELD_NAME =替换(FIELD_NAME,'找到此字符串','用此字符串替换找到的字符串');

但我对MySQL不是很了解,所以我不知道怎么做。有人可以帮忙吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

可以使用以下方法轻松实现正则表达式替换:

https://launchpad.net/mysql-udf-regexp

你需要的正则表达式(用perl / posix std表示,例如用sed)

S /([0-9] {7})0-9 / $ 1 $ 2 / g的

假设您想要从左侧(最重要的)缩短计数器以保持您已经独特的计数(显然,如果您不需要那么多地方,您想要删除无用的 - 最重要的 - 位)。

那应该让你顺利,玩得开心:)