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裏頭各種報錯。。。。感謝上面的原博主,說的太清楚啦~親測完全木有問題~轉載過來做個筆記~ 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章