大家好,我是Dodo团队的shimii

今天和大家分享一下如何使用mysql语句从用户手机号中提取纯号码。

最近工作中需要查询一些用户的手机号,但是数据库中的手机号存在不太规范的情况,数据大概有以下几种格式。

以上都是11位的电话号码几种常见的形式,我们使用mysql语句进行查询:select phone from table where length(phone) = 11。此时的结果为

只有这一种形式的号码数据被成功提取,其他数据就很尴尬地漏掉了。然鹅,由于本人比较懒,不想写提取纯数字的函数,就开始捣鼓各种查询语句。

把mysql数据库中的各种length函数来了一遍,完全没用,长度不是11的仍旧不是11。怎么办呢?

观察了一下电话号码,主要是‘+‘,‘-’,空格以及’86’占了长度,纯数字提不出来,我们可以换向思考,把这些碍事的东西去掉。

Mysql中有replace函数,我们先将空格,’-‘和‘+’用该函数去除。这里有一点需要特别注意,86可能是出现在真实电话号码中的数字,因此不能简单的使用replace(phone,'86 ',''),否则可能会出现九位数的手机号码数据。

由于replace不能一次替换多个内容,故我们采取嵌套方案,语句为:

select phone,replace(replace(replace(phone,'-',''),' ',''),'+','') as phone_change from table;替换后结果如下图。

可以看到,此时电话号码为纯数字了。我们用条件语句(case when)和截断函数(substring)来去掉多余的86,抽取纯手机号。

select phone,

case when

replace(replace(replace(phone,'-',''),' ',''),'+','') like '86%' thensubstring(replace(replace(replace(phone,'-',''),' ',''),'+',''),3)else replace(replace(replace(phone,'-',''),' ',''),'+','') end as change_phone

from table;

至此,所有手机号都已正常。

感谢大家不厌其烦看完我这篇短文,工作中经常遇到这些看似不大却又很麻烦的小问题,“投机取巧”赋予了我寻求快捷解决方法的动力。以后如果又“投机”成功了,我还会把方法和大家共同交流的。谢谢!

在mysql怎样查询地址和电话_如何使用mysql查询语句从用户手机号中提取纯号码...相关推荐

  1. mysql提取手机号_如何使用mysql查询语句从用户手机号中提取纯号码

    大家好,我是Dodo团队的shimii 今天和大家分享一下如何使用mysql语句从用户手机号中提取纯号码. 最近工作中需要查询一些用户的手机号,但是数据库中的手机号存在不太规范的情况,数据大概有以下几 ...

  2. MySQL服务器地址为空,C++/MySQL - 通过主机地址访问数据库时'未知的MySQL服务器主机';没有IP...

    我有一个数据库设置在我的1and1包中,我想在C++应用程序中连接到它.它在PHP中工作得很好.C++/MySQL - 通过主机地址访问数据库时'未知的MySQL服务器主机';没有IP 的问题是,我没 ...

  3. mysql查询雇员地址和电话_数据库的查询(结合YGGL.sql)

    (如有错误,欢迎指正!) 1.select语句查询 (1)查询employees表员工部门号和性别,要求消除重复行. mysql>select distinct 员工部门号,性别from emp ...

  4. IBM、dell、hp、lenovo服务器故障报修、技术支持、服务器保修时间查询地址、电话...

    最近机房服务器硬件故障率有点高,经常需要查询服务器保修相关的信息.对相关资料做了一下统计,方便以后使用: 1:DELL 服务器 : PowerEdge 服务器: 服务时间:周一至周日全天 询服务电话: ...

  5. mysql查询男生基本情况_详解MySql基本查询、连接查询、子查询、正则表达查询...

    select * from STUDENT; 2.2.按条件查询 (1) 比较运算符 > , < ,= , != (< >),>= , <= select * fr ...

  6. mysql查询结果输出文件_如何将MySQL查询输出保存到文件?

    mysql查询结果输出文件 We can use the MySQL outfile statement to save the query output into a file. This is v ...

  7. mysql的配置中主机地址怎么填_连接到mysql主机数据库配置命令-mysql主机地址

    连接到mysql主机数据库配置命令-mysql主机地址 2019/04/01 作者: 互盟股份 mysql虚拟主机的配置方法是怎样的?要知道,大部分选择虚拟主机的人最常用到的是Windows系统,而在 ...

  8. mysql 查询分析工具下载_数据库管理系统-DB查询分析器(数据库查询分析软件)6.04 中文免费版-东坡下载...

    DB查询分析器是一个功能强大的万能数据库查询分析软件,支持对各种关系数据源(包括Oracle.Sybase.DB2.Informix.MS SQL SERVER.MYSQL.MS ACCESS.Par ...

  9. mysql储存过程是什么意思_数据库原理mysql储存过程

    如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyI ...

最新文章

  1. MySQL怎么导入webcontent_把网页信息添加到mysql,在MyEclipse运行Tomcat出现下面的错误,弄不明白,求助怎么解决呀...
  2. DOM渲染的详细过程 1
  3. python入门--函数
  4. SAP UI5应用如果遇到数据绑定问题时,应该如何自己定位问题?
  5. 【2006-1】【字符统计】
  6. Java throws和throw
  7. 安装的python没有菜单栏_由非root用户安装python包/工具
  8. java .jar怎么打开_jar文件怎么打开,小编教你如何打开jar文件
  9. python如何运行_家长看的懂的Python编程---电脑要如何运行Python?
  10. 企业级 SpringBoot 教程 (七)springboot开启声明式事务
  11. android auto能用酷狗,完美支持Android车载设备,酷狗音乐pad版使用教程
  12. matlab数组、矩阵运算
  13. u深度重装系统详细教程_U盘怎样使用U深度给电脑装系统教程
  14. python中pop类型_Python基础之基本数据类型
  15. linux串口无线透传,一种无线串口透传系统的制作方法
  16. tableau之企业经营分析看版设计
  17. 裸辞,在上海一点都不“难”
  18. JD-GUI工具下载安装
  19. cass简码大全_CASS简码与实体编码对照表
  20. HTML5经典面试题

热门文章

  1. DM365的视频编码器的硬件设计
  2. puzzle(1211)消除:2048最大分数
  3. MySQL第七讲 MySQL的高可用方案
  4. nexus 6p刷android go,Nexus 6P刷入第三方Recovery获取Root权限教程
  5. ubutnu pdf 编辑工具
  6. 微信7.0.16 for iOS测试版新增隐藏会话功能
  7. android四大组件在哪层,Android四大组件framework层
  8. Facebook时间序列预测算法模型-prophet
  9. Cocos2d-x 3.2 之 进度条 progressTimer
  10. c语言数据结构之队列