简单说明:
我有一列文字,这是我书中的句子。如何查找所有包含单词A X C或X B C或A B X的句子,其中X可以是任何单词。
为什么我需要这个:更详细的说明
我正在建立琐事游戏。我有一本关于我的数据库的书,我在需要完成一个单词时会产生问题。所以我选择一个随机句子并从中删除一个随机单词。这个词是目前的答案。我想给我的用户3个随机选项供选择。为了做到这一点,我想在我的书中搜索类似的词:
让我说我的句子是A B C,遗漏的单词是B.我想找到所有不是B的X字,并且在我的书中,在A和C之间。 或者让我们说缺少的单词是A.我想找到所有不是A的X单词,并且在单词A之后出现在我的书中。与C相同。
我的书中有一栏文字。
答案 0 :(得分:0)
没有一种机制能够满足您的需求,而使用LIKE
或GLOB
扫描整个表格可能过于缓慢。
尝试使用full-text search查找在缺失单词之前和之后有两个句子片段的记录。
由于这些片段几乎相邻,因此请使用NEAR
运算符:
SELECT docid
FROM FtsTable
WHERE FtsTable MATCH '"a long time ago in a" NEAR/1 "far far away"'
这仍然会找到两个句子片段之间没有单词的记录,或者片段的顺序错误,所以你仍然需要在代码中过滤结果。