2

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

我发现 Red Gate http://www.red-gate.com和 Fake.js,看起来都不错,并且有正面评价。但是,似乎仅对于一列来说,它们是矫枉过正的。

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

4

1 回答 1

2

设置:

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

拆除:

UPDATE `table` -- will restore abc@gmail.com.test -> abc@gmail.com
  SET `email` = LEFT(`email`, LENGTH(`email`)-5)
  WHERE `email` LIKE "%.test";
于 2013-09-03T10:59:51.507 回答