MySQL - заменить часть строк, заканчивающуюся на '/' - PullRequest
0 голосов
/ 06 мая 2018

У меня очень мало опыта работы с SQL. Я застрял с, казалось бы, очень простой задачей - я скопировал строку с номерами контрактов, которая включает двузначный номер года ( EG 1/14, 31/15, 221/17 ) в новый ряд "год".

Теперь мне нужно заменить цифры, оставшиеся от косой черты, и косую черту со строкой «20», чтобы получить довольно полный год ( EG 2014, 2015, 2017 ). Строка VARCHAR.

Я пытался это:

UPDATE contracts SET year = REPLACE(year, '%/', '20')

или это:

UPDATE contracts SET year = REPLACE(year, '*/', '20')

Который не выдал ошибку, но ничего не обновил (затронуто 0 строк ...).

Я пытался даже регулярное выражение, но это выдает ошибку, поэтому, очевидно, синтаксис должен быть неправильным:

UPDATE contracts SET year = REPLACE(year, '.+/\', '20')

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 мая 2018

MySQL не поддерживает регулярные выражения с replace(). Основываясь на ваших данных образца, вы можете сделать:

UPDATE contracts
    SET year = CONCAT('20', SUBSTRING_INDEX(year, '/', -1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...