Обновление MySQL с условием REGEXP - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно обновить некоторые номера телефонов, начиная с:

39 9xxxxx 39 8xxxxx from 9 to 4 добавление 0 in front

Но мне нужно найти только номера телефонов с 39[4-9]xxxxx

UPDATE table SET phone_number = CONCAT(
REPLACE(
    LEFT(phone_number,2), '39', '390'),      
    SUBSTRING(phone_number, 2, CHAR_LENGTH(phone_number)
)) WHERE phone_number REGEXP '^[4-9]{3}';

stuck in here   ^^^^^^^^^^^

Любая помощь или идея?

1 Ответ

0 голосов
/ 14 сентября 2018

Этот запрос будет делать то, что вы хотите. Он использует REGEXP для сопоставления чисел, которые начинаются с 394 до 399:

UPDATE numbers 
SET phone_number = CONCAT(LEFT(phone_number, 2), '0', SUBSTR(phone_number, 3))
WHERE phone_number REGEXP '^39[4-9]'

Демонстрация SQLFiddle

...