我需要更新一些电话号码,例如:

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/

10-12 16:44