在MySQL中格式化电话号码

时间:2011-09-14 21:51:48

标签: mysql regex format

我在数据库中有一堆电话号码格式如下:(999)123-3456。

我需要他们看起来像123-123-1234

在MySQL中是否有任何类型的正则表达式或其他内容可以快速格式化所有这些电话号码? 另外,令人沮丧的是,有些不是那样的格式,所以我不能将它应用到整个列。

谢谢!

3 个答案:

答案 0 :(得分:4)

快速解决方案是运行这两个查询:

UPDATE table_name set PhoneCol = REPLACE(PhoneCol, '(', '');
UPDATE table_name set PhoneCol = REPLACE(PhoneCol, ') ', '-');

答案 1 :(得分:2)

只需编写一个小的PHP脚本,循环遍历所有值并更新它们。在PHP中进行这种改变非常简单。然后在行上运行更新以覆盖该值。

答案 2 :(得分:1)

可能是两次通过的解决方案。

  1. 去掉所有非数字字符(和空格)
  2. 将格式化字符'(',')',''和' - '插入正确的位置 (或者更好的是,将它们关闭并仅在报告中选择时进行格式化。)