MySQL - 将现有的部分文本与全文匹配
MySQL - Match existing partial text against full text
我有一个文本列,其中包含我想要更新的较长文本的部分片段。
例如,一列可能包含:
This is a long text string that cont...
我需要将上面的替换为:
This is a long text string that contains a lot more information and should be stored in the database.
我试过以下方法:
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);
但是,returns 许多结果包含较长版本文本中的一个或多个单词。我如何找到仅包含与较长文本完全相同的现有单词的现有行?原始片段中的省略号是故意的,因为较长的字符串之前已被截断。我也可以合理地期望截断的文本列是唯一的,从而产生一个结果。
编辑
我已经解决了这个问题,方法是简单地提取较长文本的前 X 个字符并将其与现有数据进行匹配。这是有效的,因为每一行都是唯一的。
最后我可以通过使用 %text
而不是 %text%
并指定仅匹配前 20 个字符来找到匹配项。
我有一个文本列,其中包含我想要更新的较长文本的部分片段。
例如,一列可能包含:
This is a long text string that cont...
我需要将上面的替换为:
This is a long text string that contains a lot more information and should be stored in the database.
我试过以下方法:
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);
但是,returns 许多结果包含较长版本文本中的一个或多个单词。我如何找到仅包含与较长文本完全相同的现有单词的现有行?原始片段中的省略号是故意的,因为较长的字符串之前已被截断。我也可以合理地期望截断的文本列是唯一的,从而产生一个结果。
编辑
我已经解决了这个问题,方法是简单地提取较长文本的前 X 个字符并将其与现有数据进行匹配。这是有效的,因为每一行都是唯一的。
最后我可以通过使用 %text
而不是 %text%
并指定仅匹配前 20 个字符来找到匹配项。