1. 首页
  2. IT资讯

技术 | MySQL隐藏真实手机号

“u003Cdivu003Eu003Cpu003E在写项目的时候,很多涉及用户隐私的内容都会用星号占位,例如:u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E京东商品详情评论功能(用户昵称使用星号占位,避免泄露用户信息)u003Cu002Fpu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fc6c2ece62cba476d983203b977fa3265″ img_width=”560″ img_height=”365″ alt=”技术 | MySQL隐藏真实手机号” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E·u003Cu002Fstrongu003E 抽奖活动中奖名单(用户手机号使用星号占位,避免泄露用户信息)u003Cu002Fpu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F82b38a24f1804cf8b9630faca9995bbc” img_width=”560″ img_height=”551″ alt=”技术 | MySQL隐藏真实手机号” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E思考:如何实现上图效果?u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E回答:通过mysql的concat、left、right系统函数;u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E语法说明u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E作用:将多个字符串连接成一个字符串。u003Cu002Fpu003Eu003Cpu003E语法:concat(字符串1,….,字符串n)。u003Cu002Fpu003Eu003Cpu003E作用:从左边开始截取字符串。u003Cu002Fpu003Eu003Cpu003E语法:left(字符串,截取长度)。u003Cu002Fpu003Eu003Cpu003E作用:从右边开始截取字符串。u003Cu002Fpu003Eu003Cpu003E语法:right(字符串,截取长度)。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E分析步骤u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E这里我们主要通过mysql的concat、left、right函数来过滤数据库数据。我们以隐藏手机号码为例,实现过程非常简单,一共只需要3个步骤:u003Cu002Fpu003Eu003Cpu003E① 通过left函数截取手机号前3个字符u003Cu002Fpu003Eu003Cpu003E② 通过right函数截取手机号后3个字符u003Cu002Fpu003Eu003Cpu003E③ 通过concat将“前3个字符” + “*****” + 后3个字符连接起来即可u003Cu002Fpu003Eu003Cpu003E接下来,我们老师将带领大家通过以上3个步骤来实现接口代码优化….u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E推进代码u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E步骤1:准备测试数据u003Cu002Fpu003Eu003Cpu003ECREATE TABLE users (u003Cu002Fpu003Eu003Cpu003E id int primary key auto_increment comment ‘编号’,u003Cu002Fpu003Eu003Cpu003E uname varchar(45) not null comment ‘姓名’,u003Cu002Fpu003Eu003Cpu003E mobile char(11) not null comment ‘手机号’u003Cu002Fpu003Eu003Cpu003E) CHARSET=utf8;u003Cu002Fpu003Eu003Cpu003Einsert into users u003Cu002Fpu003Eu003Cpu003Evaluesu003Cu002Fpu003Eu003Cpu003E(null, ‘张三’, 12222222222),u003Cu002Fpu003Eu003Cpu003E(null, ‘李四’, 13333333333),u003Cu002Fpu003Eu003Cpu003E(null, ‘王五’, 14444444444),u003Cu002Fpu003Eu003Cpu003E(null, ‘赵六’, 15555555555);u003Cu002Fpu003Eu003Cpu003E步骤2:按照分析步骤实现功能u003Cu002Fpu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F7fb60f7f4317446692eecef8addad207″ img_width=”560″ img_height=”340″ alt=”技术 | MySQL隐藏真实手机号” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段别名fmt_mobileu003Cu002Fpu003Eu003Cpu003E– select *,mobile as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段“左边3个字符”u003Cu002Fpu003Eu003Cpu003E– select *,left(mobile,3) as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段”右边3个字符”u003Cu002Fpu003Eu003Cpu003E– select *,right(mobile,3) as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段”左边3个字符”+”*****”+”右边3个字符”u003Cu002Fpu003Eu003Cpu003Eselect *,concat(left(mobile,3), ‘*****’, right(mobile,3)) as fmt_mobile from users; u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E明确需求u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E在写项目的时候,很多涉及用户隐私的内容都会用星号占位,例如:u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E京东商品详情评论功能(用户昵称使用星号占位,避免泄露用户信息)u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E·u003Cu002Fstrongu003E 抽奖活动中奖名单(用户手机号使用星号占位,避免泄露用户信息)u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E思考:如何实现上图效果?u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E· u003Cu002Fstrongu003E回答:通过mysql的concat、left、right系统函数;u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E语法说明u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E作用:将多个字符串连接成一个字符串。u003Cu002Fpu003Eu003Cpu003E语法:concat(字符串1,….,字符串n)。u003Cu002Fpu003Eu003Cpu003E作用:从左边开始截取字符串。u003Cu002Fpu003Eu003Cpu003E语法:left(字符串,截取长度)。u003Cu002Fpu003Eu003Cpu003E作用:从右边开始截取字符串。u003Cu002Fpu003Eu003Cpu003E语法:right(字符串,截取长度)。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E分析步骤u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E这里我们主要通过mysql的concat、left、right函数来过滤数据库数据。我们以隐藏手机号码为例,实现过程非常简单,一共只需要3个步骤:u003Cu002Fpu003Eu003Cpu003E① 通过left函数截取手机号前3个字符u003Cu002Fpu003Eu003Cpu003E② 通过right函数截取手机号后3个字符u003Cu002Fpu003Eu003Cpu003E③ 通过concat将“前3个字符” + “*****” + 后3个字符连接起来即可u003Cu002Fpu003Eu003Cpu003E接下来,我们老师将带领大家通过以上3个步骤来实现接口代码优化….u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E推进代码u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E步骤1:准备测试数据u003Cu002Fpu003Eu003Cpu003ECREATE TABLE users (u003Cu002Fpu003Eu003Cpu003E id int primary key auto_increment comment ‘编号’,u003Cu002Fpu003Eu003Cpu003E uname varchar(45) not null comment ‘姓名’,u003Cu002Fpu003Eu003Cpu003E mobile char(11) not null comment ‘手机号’u003Cu002Fpu003Eu003Cpu003E) CHARSET=utf8;u003Cu002Fpu003Eu003Cpu003Einsert into users u003Cu002Fpu003Eu003Cpu003Evaluesu003Cu002Fpu003Eu003Cpu003E(null, ‘张三’, 12222222222),u003Cu002Fpu003Eu003Cpu003E(null, ‘李四’, 13333333333),u003Cu002Fpu003Eu003Cpu003E(null, ‘王五’, 14444444444),u003Cu002Fpu003Eu003Cpu003E(null, ‘赵六’, 15555555555);u003Cu002Fpu003Eu003Cpu003E步骤2:按照分析步骤实现功能u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段别名fmt_mobileu003Cu002Fpu003Eu003Cpu003E– select *,mobile as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段“左边3个字符”u003Cu002Fpu003Eu003Cpu003E– select *,left(mobile,3) as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段”右边3个字符”u003Cu002Fpu003Eu003Cpu003E– select *,right(mobile,3) as fmt_mobile from users;u003Cu002Fpu003Eu003Cpu003E– 显示所有字段 + 并单独显示手机字段”左边3个字符”+”*****”+”右边3个字符”u003Cu002Fpu003Eu003Cpu003Eselect *,concat(left(mobile,3), ‘*****’, right(mobile,3)) as fmt_mobile from users; u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:技术 | MySQL隐藏真实手机号

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/26846.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code