我在 MySQL 数据库中有一组 850,000 个条目。有些条目非常相似,比如
Foobar Lorem
Foobar Ipsum
Foobar Dolor
我如何根据相似性对所有条目进行分组(例如,至少 4 个相同的字符)。
我无法使用 LIKE
运算符查询特定字符串,因为我不知道所有可能的相似条目。
我发现了一些有趣的方法(例如 Levenshtein 距离),但所有函数都需要至少一个参数来查找。
有什么建议吗?
/更新
当字符串开头相似时就足够了
最佳答案
您可能想尝试 SOUNDEX
,因为这是一种根据特定单词或一组单词的发音创建代码的算法,因此任何发音相似的单词都将在此处分组(代码可以很长,字符串较长,因此请修剪到前 6 个字符)。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
GROUP BY SUBSTRING(SOUNDEX(col), 1, 6)
关于mysql - 按相似性对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556870/