2017-05-31 141 views
-5

我只是问在这里什么是在MySQL中重复删除表的最佳方法?MySQL记录重复数据删除

我与字段idnamelastnameuser_nobirthdaypercentage,然后parent_id一个示例表。我想要的是在percentageparent_id字段中添加一个值,该字段基于哪个记录是重复的以及它们的相似程度。

我只是要求一种方法。检查每个领域两次以检查比赛是否有效?或者,还有另一种方式吗?

+2

如果你不能添加任何代码,你能举一个例子吗? –

+0

你的数据库有多大?是否可以将所有记录同时读入内存?您的目标是对现有记录进行重复数据删除,以防止将来出现重复记录,或两者兼而有之? – FKEinternet

+0

你还必须给出一些解释,说明你是如何决定事物的相似程度的?这是否意味着某些字段是相同的,一些不同的,相似的名称(不管那意味着什么)等等。 –

回答

1

假设id领域是独一无二的每个记录,并与其他类似的那些数据库中的第一个记录是parent_id

  1. 看了你的第一个记录,存储在本地变量的字段值。

  2. 读取数据库中的每个连续记录。如果它的值为parent_id,请转到下一条记录。

  3. 将新读取的记录中的字段与先前存储的记录中的字段进行比较。如果有足够的匹配项,请更新新读取的记录的parent_idpercentage字段。

  4. 当您到达数据库的末尾但尚未比较ini的所有记录时,请阅读下一个父记录(即,第二次,数据库中的第二条记录,假设它没有其parent_id字段集),存储其字段值在比较变量,从第2步

重复阅读问题的描述与你other question后,它看起来像你想改变选择步骤4中的标准:为了找到“更好”的匹配,您不希望跳过parent_id字段集的记录,而是每使用记录在数据库中,作为比较来源。这也意味着你不会想跳过步骤2中的记录与parent_id已经设置 - 你马上要读每一条记录在数据库中ň次,其中ñ是它的行数。

+0

谢谢!我会稍后再尝试,并在这里提供更新。 –