我有一个表结构,基本上是:
Items
ID: INT(10)
Title: CHAR(255)
ItemsWords
ID: INT(10)
ItemID: INT(10)
Word: CHAR(50)
对于每条“Item”记录,“ItemsWords”表中有多个记录。
我可以找到所有使用这个的项目,其中包含一个像这样的单词:
SELECT * FROM Items i, ItemsWords w WHERE w.ItemID=i.ID AND w.Word='WORD_TO_FIND'
我可以找到所有使用它的项目,其中包含以下任何一个词:
SELECT * FROM Items i, ItemsWords w
WHERE w.ItemID=i.ID
AND (w.Word='WORD_TO_FIND' OR w.Word='ANOTHER_WORD_TO_FIND')
但我也希望能够使用相同的表结构来仅查找包含任意数量的搜索词的“项目”。
我知道我可以通过表格使用全文,该Items
表格有超过 100,000 条记录,并且ItemWords
表格不止于此,因此以这种方式设置结构以使这些搜索非常快速并且对服务器的影响最小。上面的一个词或任何词搜索确实是超快速的。
谢谢!