mysql 字符串截取_技术 | MySQL隐藏真实手机号

在写项目的时候,很多涉及用户隐私的内容都会用星号占位,例如:

· 京东商品详情评论功能(用户昵称使用星号占位,避免泄露用户信息)

c11751b396b94274ef2805e84e8b59c8.png

· 抽奖活动中奖名单(用户手机号使用星号占位,避免泄露用户信息)

98028f4baec36de37ec16073a47c2389.png

· 思考:如何实现上图效果?

· 回答:通过mysql的concat、left、right系统函数;

语法说明

作用:将多个字符串连接成一个字符串。

语法:concat(字符串1,....,字符串n)。

作用:从左边开始截取字符串。

语法:left(字符串,截取长度)。

作用:从右边开始截取字符串。

语法:right(字符串,截取长度)。

分析步骤

这里我们主要通过mysql的concat、left、right函数来过滤数据库数据。我们以隐藏手机号码为例,实现过程非常简单,一共只需要3个步骤:

① 通过left函数截取手机号前3个字符

② 通过right函数截取手机号后3个字符

③ 通过concat将“前3个字符” + “*****” + 后3个字符连接起来即可

接下来,我们老师将带领大家通过以上3个步骤来实现接口代码优化....

推进代码

步骤1:准备测试数据

CREATE TABLE users (

id int primary key auto_increment comment '编号',

uname varchar(45) not null comment '姓名',

mobile char(11) not null comment '手机号'

) CHARSET=utf8;

insert into users

values

(null, '张三', 12222222222),

(null, '李四', 13333333333),

(null, '王五', 14444444444),

(null, '赵六', 15555555555);

步骤2:按照分析步骤实现功能

34528a799ca5810fc05ab9b8834d7f0b.png

-- 显示所有字段 + 并单独显示手机字段别名fmt_mobile

-- select *,mobile as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段“左边3个字符”

-- select *,left(mobile,3) as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段”右边3个字符”

-- select *,right(mobile,3) as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段”左边3个字符”+"*****"+”右边3个字符”

select *,concat(left(mobile,3), '*****', right(mobile,3)) as fmt_mobile from users;

明确需求

在写项目的时候,很多涉及用户隐私的内容都会用星号占位,例如:

· 京东商品详情评论功能(用户昵称使用星号占位,避免泄露用户信息)

· 抽奖活动中奖名单(用户手机号使用星号占位,避免泄露用户信息)

· 思考:如何实现上图效果?

· 回答:通过mysql的concat、left、right系统函数;

语法说明

作用:将多个字符串连接成一个字符串。

语法:concat(字符串1,....,字符串n)。

作用:从左边开始截取字符串。

语法:left(字符串,截取长度)。

作用:从右边开始截取字符串。

语法:right(字符串,截取长度)。

分析步骤

这里我们主要通过mysql的concat、left、right函数来过滤数据库数据。我们以隐藏手机号码为例,实现过程非常简单,一共只需要3个步骤:

① 通过left函数截取手机号前3个字符

② 通过right函数截取手机号后3个字符

③ 通过concat将“前3个字符” + “*****” + 后3个字符连接起来即可

接下来,我们老师将带领大家通过以上3个步骤来实现接口代码优化....

推进代码

步骤1:准备测试数据

CREATE TABLE users (

id int primary key auto_increment comment '编号',

uname varchar(45) not null comment '姓名',

mobile char(11) not null comment '手机号'

) CHARSET=utf8;

insert into users

values

(null, '张三', 12222222222),

(null, '李四', 13333333333),

(null, '王五', 14444444444),

(null, '赵六', 15555555555);

步骤2:按照分析步骤实现功能

-- 显示所有字段 + 并单独显示手机字段别名fmt_mobile

-- select *,mobile as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段“左边3个字符”

-- select *,left(mobile,3) as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段”右边3个字符”

-- select *,right(mobile,3) as fmt_mobile from users;

-- 显示所有字段 + 并单独显示手机字段”左边3个字符”+"*****"+”右边3个字符”

select *,concat(left(mobile,3), '*****', right(mobile,3)) as fmt_mobile from users;

原作者:爱编码的J

原平台:黑马程序员社区

原链接:【上海校区】MySQL隐藏真实手机号-黑马程序员技术交流社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值