我有两个表:Sentence 和 WordIndex。
句子:
id、
text、
wordId
WordIndex:
id、
word、
sentenceId
设想:
示例:
语句表
1,“我跳过狗”,[1,2,3,4,5]
2,“我绊倒猫”,[6,7,8,9,10]
WordIndex 表
1, "i", 1
2, "jumped", 1
3, "over", 1
4, "the", 1
5, "dog", 1
6, "i", 2
7, "tripped", 2
8,“过”,2
9,“该”,2
10,“猫”,2
我想找到所有仅包含以下任何单词的句子:“i”、“jumped”、“over”、“the”、“dog”、“cat”。
如果我只是在索引中搜索这些词,将返回句子#2,它不应该包含在内。
我的想法是在 WordIndex 中找到与目标词不匹配的行。该结果包含我不想要的所有 SentenceId,而我不想要的所有 SentenceId。然后,获取不在该结果中的句子的 ID。
问题是,我对 MySQL 很陌生,有两个问题。
1)这似乎是获得预期结果的最有效方法吗?我需要它来很好地扩展(数百万个索引和数千个目标/允许的单词)。
2) 我如何将该解决方案转换为 SQL 语句?