0

简单解释:

我有一栏文本是我书中的句子。如何找到所有包含单词 AXC 或 XBC 或 ABX 的句子,其中 X 可以是任何单词。

为什么我需要这个:更详细的解释

我正在构建琐事游戏。我有一本关于我的数据库的书,我正在生成需要完成一个单词的问题。所以我选择一个随机句子并从中删除一个随机单词。这个词是当前的答案。我想给我的用户 3 个随机选项可供选择。为此,我想在我的书中搜索类似的单词:

假设我的句子是 ABC 并且缺少的单词是 B。我想找到所有不是 B 并且在我的书中的单词 A 和 C 之间的 X 单词。或者假设缺少的单词是 A。我想找出所有不是 A 并且在我的书中的单词 A 之后的所有 X 单词。与 C 相同。

我的书中有一列带有句子的文本。

4

1 回答 1

0

没有单一的机制可以满足您的需求,并且使用LIKEGLOB扫描整个表可能无论如何都太慢了。

尝试使用全文搜索来查找在缺失词之前和之后具有两个句子片段的记录。由于这些片段应该几乎相邻,因此使用NEAR运算符:

SELECT docid
FROM FtsTable
WHERE FtsTable MATCH '"a long time ago in a" NEAR/1 "far far away"'

这仍然会找到两个句子片段之间没有单词的记录,或者片段顺序错误的记录,因此您仍然需要在代码中过滤结果。

于 2013-06-10T08:03:27.773 回答