我有一张桌子"评论"
ID Comment
1 This is a test.
2 Hello.
3 I am a test.
4 How are you?
在文本文件中,我读了以下字符串: "今天我要进行测试。"
我想要做的是选择包含我的字符串中至少两个单词的行。在这种情况下,我想选择第1行和第3行。
我尝试使用FULLTEXT搜索,但它输出的行甚至只有一个单词外观。我该怎么办?
谢谢!
答案 0 :(得分:0)
在SQL中没有一种很好的方法可以做到这一点。一种方法是解析字符串,然后计算匹配数:
where ((concat(' ', comment, ' ') like '% Today %') +
(concat(' ', comment, ' ') like '% I %') +
(concat(' ', comment, ' ') like '% am %') +
(concat(' ', comment, ' ') like '% going %') +
(concat(' ', comment, ' ') like '% to %') +
(concat(' ', comment, ' ') like '% run %') +
(concat(' ', comment, ' ') like '% a %') +
(concat(' ', comment, ' ') like '% test %')
) >= 2
使用布尔搜索功能,您可以使用全文搜索执行类似操作。但请注意,全文搜索具有最小字长和停用词列表。这样可以消除示例字符串中的几乎所有单词。