2017-05-05 28 views
0

我有一個文本列,其中包含我想要更新的較長文本的部分片段。MySQL - 根據全文匹配現有的部分文本

例如,列可能包含:

這是一個長的文本字符串,續...

我需要更換上面:

這是一個很長的文本字符串,它包含更多的信息並且應該存儲在數據庫中。

我已經試過如下:

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字母開頭和匹配它針對現有的數據解決了這個。這是因爲每行的唯一性。

+0

另一種方式就像%text%...或者可能讀取匹配函數生成的分數,然後按順序排列它們,然後將第一行作爲最接近的那一個匹配更多的詞。 –

+0

嘗試過,但得分遠低於其他行:( – btl

+0

只有您想要查找的值包含省略號'...'?如果是這樣,您可以:列如'%...%' – Degan

回答

0

結束我可以通過使用%text而不是%text%來找到匹配,並且只指定匹配前20個字符。

相關問題