MySQL 查询手机号时隐藏中间 4 位

转载自:https://blog.csdn.net/maxsky/article/details/78656965?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  很多时候我们会根据昵称显示某某用户,但如果用户未设置昵称时就需要用用户名代替,但用户名又是手机号的时候,隐私问题就来了,所以下面是一个简单的方法在查询时自动 Get 到隐藏后的手机号。 

很简单,对需要屏蔽的字段用 concat_ws 处理一下就 OK 啦。中间用 JOIN 啥的并不影响哈。

SELECT
    # 查询其他数据
    u.id,
    u.user_name,
    # 查询手机号
    concat_ws(
        # 星号代替,需要屏蔽几位就输入几个字符,这儿是 4 位星号
        '****',
        # user_name = 手机号字段。取第 1 位开始一共 3 个字符(手机号前 3 位
        substring(u.user_name, 1, 3),
        # 取第 8 位开始一共 4 个字符(手机号后 4 位
        substring(u.user_name, 8, 4)
    ) AS 'mobile' # 取一个别名
FROM
    users AS u

 

PS:这个是小功能,但是百度上给的substring方法放到MySQL里头各种报错。。。。感谢上面的原博主,说的太清楚啦~亲测完全木有问题~转载过来做个笔记~ 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值