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