查询过滤数据有关问题

查询过滤数据问题tel1371111687512345678901010-12345671371111687531有很多这种的想要过滤出来正确的电话

查询过滤数据问题
tel
13711116875
12345678901
010-1234567
1371111687531
有很多这种的想要过滤出来正确的电话号码、、如13711116875
select * from teltable where tel length(tel)=11
后面的条件怎么写!~google了一下、、不知道搜索什么!



[解决办法]
用正则表达式做。regexp_like
[解决办法]

SQL code
--例如select tel from tel_table where regexp_like(tel,'((\d{11})|^((\d{7,8})|(\d{4}\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)');
[解决办法]
11位 + 纯数字,另外,还要有号段表对映(移动、联通、电信)

正则表达式判断 前半段,后半段,则 用 substr 与号段维表关联吧