使用regexp条件更新mysql

yacmzcpb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(277)

我需要更新一些电话号码,比如: 39 9xx 39 8xxxxx from 9 to 4 添加 0 in front 但我只需要找到 39[4-9]xx ```
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 ^^^^^^^^^^^

有什么帮助或想法吗?
cuxqih21

cuxqih211#

此查询将执行您想要的操作。它使用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演示

相关问题