替换phone号码前缀mysql

Replace phone number prefix mysql

我需要 select 并将所有 Phone NO 前缀 (0122) 替换为新号码前缀 (072),如

01220000000 to 0720000000

但是我的 table 有很多格式 Phone NO

('+11201220000000' , '+12201220000000@abc.com' or '01220000000/01220000001').

我尝试使用 REGEXP 查找 Phone 没有像 ^/0122/[0-9]{1,7}$ 这样的格式,但我对

有疑问

01220000000/01220000001.

我应该如何使用 Mysql

通过一次查询更新所有 Phone NO

您使用 REGEXP 似乎是在正确的轨道上。以下是我对更新的措辞:

UPDATE yourTable
SET phone = REPLACE(CONCAT('072', SUBSTRING(phone, 5)), '/0122', '/072')
WHERE phone REGEXP '^[0+]122';

假设在出现两个数字的情况下,这些数字始终由正斜杠分隔 and 如果第一个数字出现,则第一个数字将成为更新的候选者第二个号也是候选

请注意,您的数据未标准化。包含多个 phone 数字的字段不是好的数据库设计。

Demo