mysql将电话号码拆分为可识别的字段

时间:2015-10-05 22:05:53

标签: mysql

我的电话号码存储在phone列下的用户表格中。它们被格式化为一整串数字,没有破折号。像这样:8005550012。

有没有办法获取电话号码,并将其拆分为3个字段,例如area_codeprefixnumber

我尝试使用类似SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(phone, ' ', 1), ' ', -1) AS area_code,之类的东西,但它并不漂亮,我觉得它根本不正确。

1 个答案:

答案 0 :(得分:3)

MID()会像你一样为你做这件事:

create table test (phone varchar(50));
insert into test values ('8005550012');
select 
  mid(phone, 1, 3) as areacode, 
  mid(phone, 4, 3) as prefix, 
  mid(phone, 7, 4) as phonenumber 
from test;

Result:
areacode |  prefix | phonenumber
800      |   555   |     0012