我比較查詢的結果一樣MATCH AGAINST爲什麼會返回不同於LIKE的結果?
SELECT * FROM object_search
WHERE
keywords LIKE '%,woman,%'
AND keywords LIKE '%,man,%'
到
SELECT * FROM object_search
WHERE
MATCH (keywords) AGAINST ('+(",woman,") +(",man,")')
我本來期望同樣的結果,但在第一個查詢吐出約300結果,第二個接近3000.
這兩者之間有什麼區別,以及如何使用全文功能獲得相同的結果?
你能否提供你的表格結構?還有一些行在第二種情況下返回,但如果是第一種情況則不行。 –
@AlmaDoMundo看起來'MATCH AGAINST'查詢只需要兩個關鍵字中的一個出現在一行中。它也是一個InnoDB表。 –
我的猜測是,它是關於你的'女人'和'人'字,因爲'男人'是'女人'的子字(但它似乎不是它應該如何工作)。試試類似'foo'和'bar'的方式 - 即不相交 –