大家好,我是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. vb怎么样实时取mysql数据库数据_浅谈如何使用vb.net从数据库中提取数据

    1.设置从Model中的Sub Main 启动 2.程序结构 3.Model1 Imports System.Windows.Forms.Application Module Module1 Sub ...

  3. java中使用es精准查询_使用ES简单查询语句须知

    查询样例 {"query": { //1 "bool": { ///2 "must": [{ //3 "query_string& ...

  4. 怎样开启mysql慢检查_如何开启mysql的慢查询

    原文:http://www.cnblogs.com/zhangjing0502/archive/2012/07/30/2615570.html Linux查看mysql 安装路径 一.查看文件安装路径 ...

  5. mysql in 原理_深入理解MySql子查询IN的执行和优化

    IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...

  6. php输出查询mysql中文乱码_解决php mysql查询插入中文乱码问题

    一.中文问题其实就是经统一编码了否则就会乱码 1.数据库与php页面编码统一 2.数据库数据表字段与页面编码统一 如果做到上面两种就不存在中文乱码问题了,那么我们来看mysql中文乱码问题解决例子 1 ...

  7. linux mysql 查看缓存_详解MySQL查询缓存

    查询缓存是指存储使用SELECT语法查询到的返回到客户端的文本.当相同的请求再次发生时,会从查询缓存中获取数据,而非再执行一遍查询.查询缓存是共享Session会话的,所以一个客户端的请求可能与另一个 ...

  8. mysql查询问题sql语句_询问一个SQL查询语句的有关问题,MYSQL的,来看看吧

    询问一个SQL查询语句的问题,mysql的,来看看吧! 我的SQL语句如下 日中三个表数据量分别为 1700 13000 34 这样查询要40秒才会出来结果(我远程连的服务器MYSQL). 我表示压力 ...

  9. mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...

    基本的查询语句​ select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名​ select 字段名 as 别名 from 表名称;​ ...

最新文章

  1. oracle-pl/sql之三
  2. 懒惰的JSF Primefaces数据表分页–第2部分
  3. java飞鸽传书_feige 飞鸽传书源代码java 实现不错的联系网络编程的资料飞鸽传书的GUI(java实现) - 下载 - 搜珍网...
  4. 9.携程架构实践 --- 网站高可用
  5. ArcGIS 10 SDE for ORACLE ---迁移 (1)
  6. 微信公众号程序开发接入流程
  7. 润飞rf1800支持解密吗_RF-3148USB,北京润飞编程器
  8. 一个FC游戏的下载站点
  9. 如何输出一个国际象棋棋盘
  10. 分享:制作属于自己的O'REILLY“动物书”封面
  11. 阿里少壮派上位:70后、80后全面掌舵阿里
  12. 如何搭建一个在线教育平台
  13. PHP后端API接口解决Ajax跨域请求的方式
  14. 最新游戏陪玩源码V2.0升级版/商业版语音聊天系统源码
  15. 相似图片搜索、算法、识别的原理解析(下)
  16. Apache Hadoop3.x 分布式集群配置安装
  17. 机器学习模型自我代码复现:SVM(SMO算法)
  18. 发票识别的全新自动化识别管理
  19. 对码农工作的感悟或总结
  20. 新能源汽车高压配电管理(PDU/BDU)

热门文章

  1. 2010年软件外包企业排名, 软件外包公司排名2010
  2. 系统加速精灵 让你的电脑速度飞快
  3. 基于msp430G2553的低频方波频率、占空比、峰峰值测量函数
  4. vs code 如何在服务器打开文件,本地VSCode编辑远程服务器文件
  5. iOS开发系列–打造自己的“美图秀秀”(上)
  6. 麻雀搜索算法matlab代码
  7. 准备做个舒米的专辑,回顾一下这位我最喜欢的车手
  8. 微软亚洲研究院开发的对对联软件
  9. Prism:Uber 的 Presto 查询网关服务
  10. week3-day7 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?