我需要将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不是很了解,所以我不知道怎么做。有人可以帮忙吗?
提前致谢!
答案 0 :(得分:1)
可以使用以下方法轻松实现正则表达式替换:
https://launchpad.net/mysql-udf-regexp
你需要的正则表达式(用perl / posix std表示,例如用sed)
S /([0-9] {7})0-9 / $ 1 $ 2 / g的
假设您想要从左侧(最重要的)缩短计数器以保持您已经独特的计数(显然,如果您不需要那么多地方,您想要删除无用的 - 最重要的 - 位)。
那应该让你顺利,玩得开心:)