自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)一招,利用MySQL函數(shù)實(shí)現(xiàn)數(shù)據(jù)脫敏

數(shù)據(jù)庫 MySQL
大家好,我是麥洛,前幾天項(xiàng)目中用到了姓名脫敏,要保留頭和尾,中間填充不定數(shù)量的'*'。因?yàn)椴皇煜は嚓P(guān)函數(shù),破費(fèi)周折,今天總結(jié)一下,感覺有用的可以收藏一下就好。

本文轉(zhuǎn)載自微信公眾號「愛寫B(tài)ug的麥洛」,作者麥洛。轉(zhuǎn)載本文請聯(lián)系愛寫B(tài)ug的麥洛公眾號。

  • 前言
  • 一 什么是數(shù)據(jù)脫敏?
  • 二 姓名脫敏小案例
    • 2.1 定長脫敏
    • 2.2 非定長脫敏
  • 三 函數(shù)釋義

前言

大家好,我是麥洛,前幾天項(xiàng)目中用到了姓名脫敏,要保留頭和尾,中間填充不定數(shù)量的'*'。因?yàn)椴皇煜は嚓P(guān)函數(shù),破費(fèi)周折,今天總結(jié)一下,感覺有用的可以收藏一下就好

一、什么是數(shù)據(jù)脫敏?

數(shù)據(jù)脫敏(Data Masking),顧名思義,是屏蔽敏感數(shù)據(jù),對某些敏感信息(比如,身份證號、手機(jī)號、卡號、客戶姓名、客戶地址、郵箱地址、薪資等等 )通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)隱私數(shù)據(jù)的可靠保護(hù)。業(yè)界常見的脫敏規(guī)則有,替換、重排、加密、截?cái)?、掩碼,用戶也可以根據(jù)期望的脫敏算法自定義脫敏規(guī)則。

二、姓名脫敏小案例

2.1 定長脫敏

所謂定長脫敏,就是替換的'*'的長度固定,效果如下圖所示

  1. SELECT 
  2.  CONCAT( LEFT ( real_name, 1 ), '*'RIGHT ( real_name, CHAR_LENGTH( real_name )- 2 ) ) AS username  
  3. FROM 
  4.  sys_user; 

2.2 非定長脫敏

所謂非定長脫敏,就是替換的'*'長度不定,要根據(jù)姓名實(shí)時變化;

方式一

  1. SELECT 
  2.  rpad( 
  3.   substring(u.real_name, 1, 1), 
  4.   char_length(u.real_name), 
  5.   '*' 
  6.  ) 
  7. FROM 
  8.  sys_user u; 

方式二

  1. SELECT 
  2.   CONCAT( LEFT ( real_name, 1 ),  repeat('*',CHAR_LENGTH( real_name )- 1)) AS username  
  3. FROM 
  4.   sys_user; 

三、函數(shù)釋義

在上面的例子中,我們用到了部分函數(shù),下面一起來學(xué)習(xí)一下

CONCAT()

CONCAT()函數(shù)需要一個或多個字符串參數(shù),并將它們連接成一個字符串。

  1. CONCAT(string1,string2, ... ); 

CONCAT()函數(shù)在連接之前將所有參數(shù)轉(zhuǎn)換為字符串類型。如果任何參數(shù)為NULL,則CONCAT()函數(shù)返回NULL值。

  1. mysql> SELECT CONCAT('MySQL','CONCAT'); 
  2. +--------------------------+ 
  3. | CONCAT('MySQL','CONCAT') | 
  4. +--------------------------+ 
  5. | MySQLCONCAT              | 
  6. +--------------------------+ 
  7. 1 row in set 

如果添加NULL值,則CONCAT函數(shù)將返回一個NULL值,如下所示:

  1. mysql> SELECT CONCAT('MySQL',NULL,'CONCAT'); 
  2. +-------------------------------+ 
  3. | CONCAT('MySQL',NULL,'CONCAT') | 
  4. +-------------------------------+ 
  5. NULL                          | 
  6. +-------------------------------+ 
  7. 1 row in set 

LEFT()

LEFT()函數(shù)是一個字符串函數(shù),它返回具有指定長度的字符串的左邊部分。

  1. LEFT(str,length); 

LEFT()函數(shù)接受兩個參數(shù):

  • str是要提取子字符串的字符串。
  • length是一個正整數(shù),指定將從左邊返回的字符數(shù)。

LEFT()函數(shù)返回str字符串中最左邊的長度字符。如果str或length參數(shù)為NULL,則返回NULL值。

RIGHT()

該方法和left()剛好相反,用法一致,就不做贅述;

CHAR_LENGTH()

返回以字符來測量字符串str的長度。一個多字節(jié)字符算作一個字符。這意味著,對于包含五個兩字節(jié)字符的字符串,那么 length() 返回10,而 CHAR_LENGTH() 返回5。

rpad()

RPAD(str,len,padstr)函數(shù)表示在字符串 str 的右側(cè)使用 padstr 進(jìn)行填充,直到長度為 len。例如:

  1. SELECT RPAD(123, 6, '0'AS str1, RPAD(123, 2, '0'AS str1; 
  2. |str1  |str1| 
  3. ----+----+ 
  4. |123000|12  | 

repeat()

返回字符串str重復(fù)count次后的字符串。如果count小于1,則返回一個空字符串。如果str或count為NULL,返回NULL。

  1. mysql> SELECT REPEAT('MySQL', 3); 
  2. +----------------------------------------------------- 
  3. | MySQLMySQLMySQL                                      
  4. +----------------------------------------------------- 

 【編輯推薦】

 

責(zé)任編輯:武曉燕 來源: 愛寫B(tài)ug的麥洛
相關(guān)推薦

2022-06-24 10:26:07

pandasExcelPython

2011-04-19 09:47:14

2013-07-30 11:24:33

SAP“簡化IT 一招

2020-06-22 14:18:02

運(yùn)維架構(gòu)技術(shù)

2021-11-22 11:30:37

JavaScript代碼瀏覽器

2022-12-26 09:16:56

請求量代碼QPS

2020-10-20 08:01:30

MySQL密碼Windows

2021-08-21 23:33:16

iOS蘋果系統(tǒng)

2023-03-03 13:14:46

2012-02-01 15:41:42

2022-05-30 08:53:47

PycharmPython

2021-06-28 20:01:07

電腦性能Windows 7

2022-09-06 11:53:00

開發(fā)計(jì)算

2013-05-03 11:21:27

2011-05-03 11:13:51

黑盒

2009-02-20 10:09:00

網(wǎng)吧掉線路由器

2010-03-16 08:59:45

Windows 7純凈版安裝

2020-09-16 06:08:10

Linux文本比對代碼

2018-11-30 16:17:28

HTTPS

2021-08-03 15:25:09

數(shù)據(jù)庫Sharding SpSQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號