我需要匿名化数据库中的电子邮件,因此我尝试设置查询,但是我找不到一种为每个电子邮件生成唯一的随机字符串的方法。 到目前为止,我的是:
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” “电子邮件”
答案 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');