MySQL - 将现有的部分文本与全文匹配

时间:2017-05-05 16:37:30

标签: mysql sql text full-text-search mariadb

我有一个文本列,其中包含我想要更新的较长文本的部分摘录。

例如,列可能包含:

  

这是一个长文本字符串...

我需要用以下内容替换上面的内容:

  

这是一个包含更多信息的长文本字符串,应该存储在数据库中。

我尝试过以下方法:

SELECT * FROM database.table WHERE MATCH (column) AGAINST ('This is a long text string that contains a lot more information and should be stored in the database.' IN NATURAL LANGUAGE MODE);

但是,这会返回许多结果,其中包含较长版本文本中的一个或多个单词。如何找到仅包含针对较长文本的确切现有单词的现有行?原始代码段上的省略号是有意的,因为较长的字符串先前被截断。我还可以合理地期望截断的文本列是唯一的,从而产生一个结果。

修改

我通过简单地获取较长文本的前X个字符并将其与现有数据进行匹配来解决这个问题。这是因为每行的唯一性。

1 个答案:

答案 0 :(得分:0)

结束我可以使用%text代替%text%找到匹配项,并指定仅匹配前20个字符。