MySQL在相邻记录中搜索单词距离

时间:2015-12-11 07:12:30

标签: php mysql distance levenshtein-distance

我正在MySQL数据库中的静态记录中执行关键字文本搜索。是否可以构造一个查询来查找记录中的第一个关键字和相邻记录中的第二个关键字?请考虑以下示例数据。

------------------------------------------------------
| id | textstrings                                   |
------------------------------------------------------
|  1 | Every good boy does fine.                     |
|  2 | The quick brown fox jumped over the lazy dog. |
|  3 | I will not eat green eggs and ham.            |
|  4 | There is no time like the present.            |
|  5 | Envy is an ugly shade of green.               |
------------------------------------------------------

搜索条件green brown应返回记录2和3,因为它们是相邻记录,但不应包含记录5,因为它不是具有记录3的邻居。

我知道我可以对其中任何一个单词执行查询,并通过处理结果集来完成此操作,但我想知道是否可以将其构建到查询中。

此字段有一个FULLTEXT索引。

1 个答案:

答案 0 :(得分:3)

您可以将两个查询连接在一起,其中一个查询将搜索包含第一个搜索字符串(在此示例中为green)的ID,另一个搜索将搜索包含第二个搜索字符串的ID({{1}这里)。

brown语句的结构与删除由于SELECT子句而可能出现的重复的相邻id对的方式相同。

WHERE

点击下面的链接查看正在运行的演示。

SQLFiddle