Mysql:查询以更新具有唯一随机值的电子邮件

时间:2018-09-06 08:59:01

标签: mysql

我需要匿名化数据库中的电子邮件,因此我尝试设置查询,但是我找不到一种为每个电子邮件生成唯一的随机字符串的方法。 到目前为止,我的是:

update candidate set email = (select CONCAT(SUBSTRING(MD5(RAND()) FROM 1 FOR 15) , '@test.fr'));

但是显然值不是唯一的,用一个简单的查询就能做到吗?

我在这里尝试了解决方法:https://harrybailey.com/2015/08/mysql-roughly-random-string-generation-for-updating-rows/,但同样的结果,我得到了

  

错误代码:1062。密钥重复条目“ 0417da5fb3d071b9bd10”   “电子邮件”

1 个答案:

答案 0 :(得分:2)

您可以使用UUID

 UPDATE `candidate` SET email = CONCAT(MD5(UUID()),'@test.fr');

,如果您想精确地输入15个字符

 UPDATE candidate SET email=CONCAT(SUBSTRING(MD5(UUID()),1,15) , '@test.fr');