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

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

猜你喜欢

转载自blog.csdn.net/maxsky/article/details/78656965
今日推荐