要求为包含重复值的记录提供快速更新方法

时间:2019-01-11 01:16:33

标签: mysql sql

我有一个包含数百万条记录的表,但是每个对象可以有多个共享相同值的列,而其他一些列则具有不同的值。

示例:一个人具有相同的电子邮件地址和相同的手机号码,但是具有不同的交易历史记录,这将在表中生成多个记录。

我想根据电子邮件地址和手机号码更新表格。由于多个记录具有相同的电子邮件地址和手机号码,因此更新的列将得到相同的结果。

我的代码:

UPDATE person 
SET info = concat (email, mobile);

但是此代码将具有完整的表比例,并逐个更新记录,这非常慢,因为表很大。

我想知道是否有一种快速的方法来更新字段,即使用聚合方法?

仅供参考,我在MYSQL 8.0工作台上工作。

1 个答案:

答案 0 :(得分:0)

此声明:

我想根据电子邮件地址和手机号码更新表格。由于多个记录具有相同的电子邮件地址和手机号码。

似乎您有未标准化的表

如果要使用相同的电子邮件和相同的手机号码进行更新。您的更新会反复添加一堆相同的记录,并为数据库中的冗余数据分配大量空间。

我建议您为什么不为此创建另一个表?

例如:

您有一个记录

PersoneID1 email1 Mobile1
PersoneID1 email1 mobile1
PersoneID1 email1 mobile1
PersoneID1 email1 mobile1

代替创建四个email1 Mobile1

在新创建的表中:

它看起来就像只有一条记录一样:

PersoneID1 email1 Mobile1