首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:如何使数据多样化?

MySQL:如何使数据多样化?
EN

Stack Overflow用户
提问于 2010-03-04 18:54:49
回答 3查看 72关注 0票数 0

我们的数据库(MySQL)中有一个表,它包含以下内容: id、标题和描述。

这是一个如雨后春笋般涌现的网站,我们从其他网站获得的大部分数据都有相同的标题和描述,尽管ids是唯一的。我们不希望拾取具有相同标题和描述的数据,因为我们的数据库中已经有类似(相同)的数据。

我们如何才能轻松地删除相同的数据呢?(但请记住,ids是唯一的。)

EN

回答 3

Stack Overflow用户

发布于 2010-03-04 18:57:50

根据数据库的大小,您可以计算记录之间的Levenshtein距离或使用soundex

票数 0
EN

Stack Overflow用户

发布于 2010-03-04 18:58:38

您不必先插入它们,然后再删除它们,而是在这两个列上创建一个UNIQUE KEY,并在插入数据时生成INSERT IGNORE INTO语句。

如果您已经拥有数据并希望将其移除,则可以使用ALTER IGNORE TABLE ADD UNIQUE INDEX ...

票数 0
EN

Stack Overflow用户

发布于 2010-03-04 19:26:48

您的问题是如何从表中删除重复数据。对吗?

您希望找到与其他行具有相同标题和相同描述的所有行,并从中只保留一行并删除其他行。

假设您的表名称为table1,ID列是数字。

代码语言:javascript
复制
DELETE t  
FROM table1 t  
JOIN (  
    SELECT title, description, MIN(ID) AS idNotToDelete  
    FROM table1  
    GROUP BY title, description  
    HAVING COUNT(*) > 1  
) t1  
    ON t.title = t1.title AND t.description = t1.description AND t1.idNotToDelete <> t.id 

上面的查询将查找具有多个匹配项的所有行,并标记每个匹配项的最小ID。然后它将删除所有具有相同标题和描述的重复行,但具有最小ID.的行除外。

id标题描述

1个myTitle myDescription

2个myTitle myDescription

3 myTitle2 myDescription2

4个myTitle2 myDescription2

5个myTitle myDescription

将会变成

id标题描述

1个myTitle myDescription

3 myTitle2 myDescription2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2378626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档