在mysql怎样查询地址和电话_如何使⽤mysql查询语句从⽤户
⼿机号中提取纯号码...keyboard电子琴
⼤家好,我是Dodo团队的shimii
今天和⼤家分享⼀下如何使⽤mysql语句从⽤户⼿机号中提取纯号码。
最近⼯作中需要查询⼀些⽤户的⼿机号,但是数据库中的⼿机号存在不太规范的情况,数据⼤概有以下⼏种格式。
以上都是11位的电话号码⼏种常见的形式,我们使⽤mysql语句进⾏查询:select phone from table where length(phone) = 11。此时
的结果为unsigned不能修饰的类型是
只有这⼀种形式的号码数据被成功提取,其他数据就很尴尬地漏掉了。然鹅,由于本⼈⽐较懒,不想写提取纯数字的函数,就开始捣⿎各种
查询语句。
excel怎么用if函数
把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,
html文件格式怎么打开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;狄拉克delta函数
⾄此,所有⼿机号都已正常。
手机mysql安装配置教程感谢⼤家不厌其烦看完我这篇短⽂,⼯作中经常遇到这些看似不⼤却⼜很⿇烦的⼩问题,“投机取巧”赋予了我寻求快捷解决⽅法的动⼒。以后如果⼜“投机”成功了,我还会把⽅法和⼤家共同交流的。谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论