在MySQL中格式化电话号码
我在数据库中有一堆电话号码,格式如下:(999)123-3456。在MySQL中格式化电话号码
我需要他们的样子123-123-1234
是否有任何形式的正则表达式或东西,我可以在MySQL做快速格式化所有这些电话号码?另外,令人沮丧的是,有些不是这样的格式,所以我不能将它应用到整个列。
谢谢!
一个快速的解决办法是运行这两个查询:
UPDATE table_name set PhoneCol = REPLACE(PhoneCol, '(', '');
UPDATE table_name set PhoneCol = REPLACE(PhoneCol, ') ', '-');
工作完美,快速,轻松!谢谢! – Sara
只需编写一个循环遍历所有值并更新它们的小php脚本。在php中进行这种改变非常简单。然后在该行上运行更新以覆盖该值。
Prob写一个脚本不是一个好主意,最好使用MySQL函数。使用PHP要慢得多 –
如果你使用PHP,你会有更多的灵活性。她提到并非所有格式都是相同的,所以PHP可以更好地将它们“修复”成单一格式。如果这只是一次转换,谁在乎速度? – Landon
也许是一个两通的解决方案。
- 剥离所有非数字字符(空格)
- 插图格式化字符“(”,“)”,“”,和“ - ”到正确的地点 (或更好,但离开。他们的时间,格式只在您的报告中选择)
存储为VARCHAR处理? – stslavik