很多時候我們會根據暱稱顯示某某用戶,但如果用戶未設置暱稱時就需要用用戶名代替,但用戶名又是手機號的時候,隱私問題就來了,所以下面是一個簡單的方法在查詢時自動 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裏頭各種報錯。。。。感謝上面的原博主,說的太清楚啦~親測完全木有問題~轉載過來做個筆記~