【问题标题】:how to randomize column data and mask data using mysql如何使用mysql随机化列数据和屏蔽数据
【发布时间】:2022-01-11 09:53:43
【问题描述】:

免责声明:这些值都不是真实的/真实的,它只是一个练习分配

如何使用 mysql 随机化 DBS 帐户的后 6 位数字并用 x 隐藏 NRIC 号码的前 4 位数字。所有值都是手动键入的,彼此不相关。

当前

期望的结果

【问题讨论】:

  • 您的意思是如何更改数据库或如何更改这些值作为 SELECT 查询的一部分?
  • 更改这些值并更新数据库
  • DBS-ACCOUNT 是否包含校验位之类的技巧,或者节点之间根本没有关系?
  • 没有关系
  • 再次,更改这些值您是否想永远更新此表上的这些值!或者您是否想选择这些值并将这些列值作为查询的一部分进行模糊处理

标签: mysql sql mariadb


【解决方案1】:

只需使用子字符串操作:

SELECT
    CONCAT('XXXX', SUBSTRING(NRIC, 5, 4)) AS NRIC,
    Name,
    Contact,
    Salary,
    CONCAT(SUBSTRING(DBS_Account, 1, 3), '-XXXXX-X') AS DBS_Account
FROM yourTable;

【讨论】:

    【解决方案2】:

    mysql rand 函数 - https://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html#function_round

    使用子字符串和连接

    SELECT CONCAT(SUBSTRING(RAND(),3,5),'-',SUBSTRING(RAND(),3,1))
    

    会给出类似 40033-8 的东西

    然后用子串连接

    set @a ='038-12645-6';
    SELECT CONCAT(substring_index(@a,'-',1),'-',SUBSTRING(RAND(),3,5),'-',SUBSTRING(RAND(),3,1));
    
    '038-63475-5'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多