我正在處理內部搜索引擎(MySQL數據庫)的SQL請求。我想讓用戶搜索精確的表達式,因此當他們搜索"foo bar"
時,他們將獲得包含foo
和bar
的文檔,而不僅僅是foo
或bar
。如何選擇具有相同ID的行共享一組值?
的search_documents_words
表:
| word_id | doc_id | word |
---------------------------
| 1 | 1 | foo |
| 2 | 1 | bar |
| 3 | 2 | foo |
的search_documents
表:
| doc_id | doc_name |
---------------------
| 1 | mydoc1 |
| 2 | mydoc2 |
我想什麼:
| doc_id | doc_name |
--------------------
| 1 | mydoc1 |
假設我有我的關鍵字在一個PHP數組。
我該如何做到這一點?
那麼到目前爲止,我只是有一個查詢使用'IN'函數 - 這是工作很好,但只適用於「常規搜索」:'SELECT sdoc_id,sdoc_document,sdoc_type FROM search_documents_words,search_documents WHERE sdoc_id = swd_doc AND swd_word IN( 「。)join(',',$ _ words)。」)GROUP BY sdoc_id' – vard 2014-09-25 12:45:29