我有一个包含数百万条记录的表,但每个对象可能有多个共享相同值的列,而其他一些列具有不同的值。
示例:一个人有相同的电子邮件地址和相同的手机号码,但有不同的交易历史,这会在表中生成多条记录。
我想根据电子邮件地址和手机号码更新表格。由于多条记录具有相同的电子邮件地址和手机号码,因此更新后的列将得到相同的结果。
我的代码:
UPDATE person
SET info = concat (email, mobile);
但是这段代码会有全表规模,并且一条一条更新记录,速度很慢,因为表规模很大。
请问是否有一种快速更新字段的方法,即使用聚合方法?
仅供引用,我在 MYSQL 8.0 工作台上工作。
最佳答案
本声明:
我想根据电子邮件地址和手机号码更新表格。由于多个记录具有相同的电子邮件地址和手机号码。
您似乎有未标准化的表
如果您想使用相同的电子邮件和相同的手机号码进行更新。您的更新重复添加了一堆相同的记录,并为您的数据库分配了大量空间和冗余数据。
我建议你为什么不为此创建另一个表?
例如:
您有以下记录
PersoneID1 email1 Mobile1
PersoneID1 email1 mobile1
PersoneID1 email1 mobile1
PersoneID1 email1 mobile1
而不是创建四个email1 Mobile1
在新创建的表中:
它看起来就像只有一条记录:
PersoneID1 email1 Mobile1
关于mysql - 寻求一种快速更新包含重复值的记录的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139133/