SQL:用假邮件替换其中一列中的普通电子邮件最简单的方法是什么

SQL:用假邮件替换其中一列中的普通电子邮件最简单的方法是什么,sql,sql-server,regex,email,Sql,Sql Server,Regex,Email,在数据库的一个表中,我们有一列包含电子邮件。这张桌子很大(超过50万件)。 我正在寻找一个解决方案,以取代现有的电子邮件与他们的“洗牌”或伪造版本(用于测试目的)。由于email字段不是必需的,所以大多数单元格都是空的,我想以这种方式保留它们,因此只替换那些包含实际数据的单元格(每10-30行一次) 我发现了Red Gate和Fake.js,它们看起来都很不错,并且都得到了好评。然而,对于一个专栏来说,这似乎是一种过度的杀伤力 我对SQL不是很在行,我想可能存在一些现成的脚本,可以根据某些正则表

在数据库的一个表中,我们有一列包含电子邮件。这张桌子很大(超过50万件)。 我正在寻找一个解决方案,以取代现有的电子邮件与他们的“洗牌”或伪造版本(用于测试目的)。由于email字段不是必需的,所以大多数单元格都是空的,我想以这种方式保留它们,因此只替换那些包含实际数据的单元格(每10-30行一次)

我发现了Red Gate和Fake.js,它们看起来都很不错,并且都得到了好评。然而,对于一个专栏来说,这似乎是一种过度的杀伤力

我对SQL不是很在行,我想可能存在一些现成的脚本,可以根据某些正则表达式规则应用于一列以创建假数据。

设置:

UPDATE `table` -- will make abc@gmail.com -> abc@gmail.com.test
  SET `email` = CONCAT(`email`, ".test")
  WHERE `email` <> "";

只需在电子邮件不为null或电子邮件!=''的条件下运行更新查询在电子邮件中添加一些后缀,比如makeabc@gmail.com到xyz123abc@gmail.com这将改变所有电子邮件,你仍然可以通过删除后缀来取回它们。你能更具体地说明“伪造”背后的逻辑吗电子邮件?您想替换电子邮件正文还是电子邮件地址?您的意思是该列包含电子邮件地址还是实际电子邮件内容?@SumitGupta谢谢!这是个好主意!这是个好主意。我在想一些更复杂的事情,但这很好用。
UPDATE `table` -- will restore abc@gmail.com.test -> abc@gmail.com
  SET `email` = LEFT(`email`, LENGTH(`email`)-5)
  WHERE `email` LIKE "%.test";