2017-08-10 100 views
-1

我需要随机化几十万个电子邮件地址。严格地说,他们只需要匿名,但理想情况下他们需要是独一无二的。使用random-ish字符串更新sql列值的一部分

我知道我可以通过选择具有

SELECT UNIX_TIMESTAMP();) 

一个UNIX时间戳产生相当随机的字符串,所以我要去哪里接下来就是这样的字符串@之前更换所有内容,然后取代一切后跟字符串@anonymised.com

我坚持的部分是如何将unix时间戳插入到电子邮件地址的特定部分。我知道我能得到的字符@符号的左边与

LEFT(email,INSTR(email,"@")-1) 

,我知道我可以使用替换命令来替换字符串的一部分,但两者结合这样不工作... 。

UPDATE USERS SET email = REPLACE(LEFT(email,INSTR(email,"@")-1), UNIX_TIMESTAMP()) 

我猜测,取而代之的是期待一个字符串,而不是一个功能,但找不出哪里从这里去....

+0

什么是 “不工作” 是什么意思?它会产生一个错误?它会产生一个与预期不同的结果? ...? – Egl

+0

对不起,是的,它产生了一个语法错误。感谢您的期待,我找到了解决方案 –

回答

0

对不起,该解决方案是那样简单

update employees set email = CONCAT(UNIX_TIMESTAMP() , '@anonymised.com')