我需要更新一些电话号码,例如: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 ^^^^^^^^^^^
有什么帮助或想法吗?
最佳答案
该查询将执行您想要的操作。它使用REGEX来匹配以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 Demo
关于mysql - 具有REGEXP条件的MySQL更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52328981/