方法片段:Mysql正则识别中国手机号的所属运营商

Author Avatar
云璃 2019年07月19日

简介

本方法片段适用于Mysql数据库,暂不支持国际手机号。

php 识别 中相关正则规则在实际运行时会出现异常,故更改为判断手机号的前三、四位,结合手机号的长度来确认所属运营商。

片段

SELECT
    strphone,
CASE
        
        WHEN TRIM( t.strphone ) REGEXP '^13[4-9]|^14[78]|^15[012789]|^18[23478]|^17[28]|^170[356]|^198|^165' 
        AND length( TRIM( t.strphone ) ) = 11 THEN
            '中国移动' 
            WHEN TRIM( t.strphone ) REGEXP '^13[0-2]|^14[56]|^15[56]|^16[67]|^17[156]|^1704|^1707|^1708|^1709|^171|^18[56]' 
            AND length( TRIM( t.strphone ) ) = 11 THEN
                '中国联通' 
                WHEN TRIM( t.strphone ) REGEXP '^133|^149|^153|^1700|^1701|^1702|^177|^173|^18[019]|^19[19]' 
                AND length( TRIM( t.strphone ) ) = 11 THEN
                    '中国电信' ELSE '未知运营商' 
                    END AS provider 
        FROM
    tableName t

本文链接:https://www.masterzc.cn/archives/105.html
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处

Title - Artist
0:00