2
我爲一家店鋪建立了一個網站,該店鋪使用sql表來管理他們產品的數據。MySQL全文搜索奇數行爲
我使用全文搜索,因此用戶可以通過股票輕鬆搜索。
搜索運行查詢術語與產品的品牌,名稱和描述相符,就像這樣:
$search_prods = $db_connection->query("
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`brand`) Against('$term')
UNION
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`description`) Against('$term')
UNION
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`name`) Against('$term')
");
搜索的工作原理與品牌「潘多拉」打交道時,除了罰款。如果我搜索不同的品牌,我會得到我的結果。如果我搜索潘多拉盒子,我會在潘多拉盒子的名稱和結果中找到與潘多拉盒子相關的結果。不過,我無法在品牌中獲得潘多拉的任何結果。他們確實存在!我試過在MySql中運行查詢,並得到同樣的問題。
什麼是在'品牌'欄中搜索'潘多拉'是導致問題?任何人有任何想法?
謝謝!
感謝您的回答,並感謝您的建議。我最初編寫了我的查詢,但失敗了。由於我讀的範例只與一列匹配,因此我認爲這是該函數的一個限制。我猜我第一次犯了一個錯字或什麼... – user1537360 2013-04-30 16:30:49
@ user1537360「*我寫了我最喜歡的查詢*」=>你是指我的答案的第一部分(添加'BOOLEAN MODE')或到第二部分(簡化查詢)?我的根本問題是:它解決了問題嗎? ;) – RandomSeed 2013-04-30 16:34:26
我的意思是我原來的結構化查詢就像在你的三個整合建議中一樣。在閱讀您的評論後,我再次嘗試並得到相同的問題,但後來我注意到您的查詢包含布爾模式。當我包含布爾模式時,它解決了這個問題。 至於我在OP中提到的問題,你已經發現了。問題是我的演示產品中有5/8個是該品牌的。我添加了一些其他品牌的產品,問題解決了。 我還沒有研究過這個功能,因爲我一直在這麼急,所以謝謝你的幫助! – user1537360 2013-04-30 19:13:36