0

我有一个表,其中有一列“文本”类型。我知道我可以使用简单的 select 语句比较两个条目,看看它们是否相同。有没有办法比较两个条目并返回它们的相似程度?更具体地说,它可以说两者之间有多少个字符不同?

例如,假设一个条目是:

This is a line.

另一个是:

This is a line.  And another.

我相信我可以写一个选择语句,说明第一个包含在第二个中。但是有没有办法提醒我第一个在第二个并且第二个有 15 个额外的字符?

4

3 回答 3

1

尝试使用 Levinshtein 距离http://www.artfulsoftware.com/infotree/queries.php#552

于 2012-06-15T20:15:40.710 回答
0

您可以使用 LENGTH 和 LIKE 来执行此操作。例如:

INSERT INTO test VALUES("HELLO WORLD");
select LENGTH(name)-length("HELLO") from test where name like "%HELLO%";

因此,您需要以编程方式将 HELLO 替换为您想要搜索的任何字符串。

那是你要找的吗?

于 2012-06-15T20:18:28.937 回答
0

您可以简单地测量两者作为字符串的长度char_length()并减去差异吗? MySQL:字符长度()

(注意length()char_length()返回不同的值!)

于 2012-06-15T20:20:51.320 回答