2011-09-15 28 views
0

我需要將MySQL數據庫中的VARCHAR列中的值從YYMMDDSXXXXX更新爲YYMMDDSXXXX,其中YY是年(即2011年的11),MM是月(即9月的09),DD是日的(即15) S是一個數字的順序號(1到0)和XXXXX是順序號從00001至99999。如何用RegEx更新VARCHAR列值?

我需要減少十倍的順序號,它應該從0001到9999

我想過類似的東西:

更新TABLE_NAME set FIELD_NAME = replace(FIELD_NAME,'find this string','replace found string with this串');

但是我對MySQL不太好,所以我不知道該怎麼做。有人可以幫忙嗎?

在此先感謝!

回答

1

Regex的更換可以容易使用此來實現:

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

則需要(在Perl/POSIX STD符號例如具有SED)正則表達式

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

這是假設你想從左邊(最重要的)縮短計數器來保持你已經唯一的計數(並且顯然如果你不需要很多地方你想刪除無用的 - 最重要的 - 位)。

這應該讓你順利地走上前去,玩得開心:)

+0

感謝您的支持! – gtludwig