我有一个MySql表,其中有一个imported phone number字段,它是以NNN-NNNN-NNN
格式意外导入的。我想把这种格式的电话号码改成NNN-NNN-NNNN
格式。我要测试无效格式的字段(如果不正确,则更新)可以通过以下查询进行标识:
SELECT value FROM wp_bp_xprofile_data WHERE field_id = 9
有人能建议怎么做吗?
最佳答案
您可以使用RLIKE
来选择需要修改的值,并使用LEFT
、RIGHT
和REPLACE
来修改:
UPDATE mytable
SET phone_number =
CONCAT(
LEFT(phone_number, 7),
'-',
REPLACE(RIGHT(phone_number, 5), '-', '')
)
WHERE phone_number RLIKE '[0-9]{3}-[0-9]{4}-[0-9]{3}';
Demo on DB Fiddle
原始数据:
| phone_number |
| ------------ |
| 012-3456-789 |
| 987-654-3210 |
运行update语句后:
| phone_number |
| ------------ |
| 012-345-6789 |
| 987-654-3210 |
关于mysql - 更改MySQL表中电话号码字段的格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58278078/