mysql提取手机号_如何使用mysql查询语句从用户手机号中提取纯号码
大家好,我是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查询语句从用户手机号中提取纯号码相关推荐
- 在mysql怎样查询地址和电话_如何使用mysql查询语句从用户手机号中提取纯号码...
大家好,我是Dodo团队的shimii 今天和大家分享一下如何使用mysql语句从用户手机号中提取纯号码. 最近工作中需要查询一些用户的手机号,但是数据库中的手机号存在不太规范的情况,数据大概有以下几 ...
- vb怎么样实时取mysql数据库数据_浅谈如何使用vb.net从数据库中提取数据
1.设置从Model中的Sub Main 启动 2.程序结构 3.Model1 Imports System.Windows.Forms.Application Module Module1 Sub ...
- java中使用es精准查询_使用ES简单查询语句须知
查询样例 {"query": { //1 "bool": { ///2 "must": [{ //3 "query_string& ...
- 怎样开启mysql慢检查_如何开启mysql的慢查询
原文:http://www.cnblogs.com/zhangjing0502/archive/2012/07/30/2615570.html Linux查看mysql 安装路径 一.查看文件安装路径 ...
- mysql in 原理_深入理解MySql子查询IN的执行和优化
IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...
- php输出查询mysql中文乱码_解决php mysql查询插入中文乱码问题
一.中文问题其实就是经统一编码了否则就会乱码 1.数据库与php页面编码统一 2.数据库数据表字段与页面编码统一 如果做到上面两种就不存在中文乱码问题了,那么我们来看mysql中文乱码问题解决例子 1 ...
- linux mysql 查看缓存_详解MySQL查询缓存
查询缓存是指存储使用SELECT语法查询到的返回到客户端的文本.当相同的请求再次发生时,会从查询缓存中获取数据,而非再执行一遍查询.查询缓存是共享Session会话的,所以一个客户端的请求可能与另一个 ...
- mysql查询问题sql语句_询问一个SQL查询语句的有关问题,MYSQL的,来看看吧
询问一个SQL查询语句的问题,mysql的,来看看吧! 我的SQL语句如下 日中三个表数据量分别为 1700 13000 34 这样查询要40秒才会出来结果(我远程连的服务器MYSQL). 我表示压力 ...
- mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...
基本的查询语句 select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名 select 字段名 as 别名 from 表名称; ...
最新文章
- oracle-pl/sql之三
- 懒惰的JSF Primefaces数据表分页–第2部分
- java飞鸽传书_feige 飞鸽传书源代码java 实现不错的联系网络编程的资料飞鸽传书的GUI(java实现) - 下载 - 搜珍网...
- 9.携程架构实践 --- 网站高可用
- ArcGIS 10 SDE for ORACLE ---迁移 (1)
- 微信公众号程序开发接入流程
- 润飞rf1800支持解密吗_RF-3148USB,北京润飞编程器
- 一个FC游戏的下载站点
- 如何输出一个国际象棋棋盘
- 分享:制作属于自己的O'REILLY“动物书”封面
- 阿里少壮派上位:70后、80后全面掌舵阿里
- 如何搭建一个在线教育平台
- PHP后端API接口解决Ajax跨域请求的方式
- 最新游戏陪玩源码V2.0升级版/商业版语音聊天系统源码
- 相似图片搜索、算法、识别的原理解析(下)
- Apache Hadoop3.x 分布式集群配置安装
- 机器学习模型自我代码复现:SVM(SMO算法)
- 发票识别的全新自动化识别管理
- 对码农工作的感悟或总结
- 新能源汽车高压配电管理(PDU/BDU)
热门文章
- 2010年软件外包企业排名, 软件外包公司排名2010
- 系统加速精灵 让你的电脑速度飞快
- 基于msp430G2553的低频方波频率、占空比、峰峰值测量函数
- vs code 如何在服务器打开文件,本地VSCode编辑远程服务器文件
- iOS开发系列–打造自己的“美图秀秀”(上)
- 麻雀搜索算法matlab代码
- 准备做个舒米的专辑,回顾一下这位我最喜欢的车手
- 微软亚洲研究院开发的对对联软件
- Prism:Uber 的 Presto 查询网关服务
- week3-day7 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?