按相似性对行进行分组

时间:2013-07-09 19:46:37

标签: mysql sql

我在MySQL数据库中有一组850,000个条目。有些条目非常相似,比如

Foobar Lorem
Foobar Ipsum
Foobar Dolor

如何按相似性对所有条目进行分组(例如,至少4个相等的字符)。 我无法使用LIKE运算符查询特定字符串,因为我不知道所有可能的类似条目。

我找到了一些有趣的方法(例如Levenshtein距离),但所有函数都需要至少一个参数来查找。

有什么建议吗?

/更新

当字符串的开头类似

时就足够了

1 个答案:

答案 0 :(得分:3)

您可能想尝试SOUNDEX,因为这是一种基于特定单词或单词集合创建代码的算法,因此任何听起来相似的单词都会在此处分组(代码可以是长的弦长,所以修剪前6个字符)。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex

GROUP BY SUBSTRING(SOUNDEX(col), 1, 6)