Как обновить значение столбца VARCHAR с помощью RegEx? - PullRequest
0 голосов
/ 15 сентября 2011

Мне нужно обновить значения из столбца VARCHAR в базе данных MySQL с YYMMDDSXXXXX до YYMMDDSXXXX, где YY - год (т. Е. 11 для 2011), ММ - месяц (т. Е. 09 для сентября), DD - день (т. Е. 15), S - это однозначный номер заказа (от 1 до 0), а XXXXX - это порядковый номер от 00001 до 99999.

Мне нужно уменьшить десятикратный порядковый номер, который должен быть от 0001 до 9999.

Я думал о чем-то вроде:

обновить набор TABLE_NAME FIELD_NAME = replace (FIELD_NAME, 'найти эту строку', 'заменить найденную строку этой строкой');

Но я не очень хорош в MySQL, поэтому я не уверен, как это сделать.Может кто-нибудь помочь?

Заранее спасибо!

1 Ответ

1 голос
/ 15 сентября 2011

Заменить регулярное выражение можно легко с помощью этого:

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

Необходимое регулярное выражение (в нотации perl / posix std, например, с sed)

s/ ([0-9] {7}) 0-9 / $ 1 $ 2 / г

Предполагается, что вы хотите сократить счетчик слева (самый значительный), чтобы сохранить значения, которые у вас уже есть (и, разумеется, если вам не нужно столько мест, которые вы хотите удалить, бесполезный - самый значимый - бит).

Это должно помочь вам в пути, получайте удовольствие :))

...