2014-05-17 92 views
0

我正在使用moset樹,我正在創建搜索功能,其中 當用戶輸入關鍵字如大學時,那麼它應該在數據庫中搜索數據庫中的標籤列。如果大學匹配,那麼應該在結果中顯示該條目。從逗號搜索關鍵字在PHP中標記的分隔值Mysql

我的數據庫查看: 第一張表:mt_links,其中保存了所有列表。 第二張表:mt_cfvalues標籤被保存並被標準化 表示在第一張和第二張表中link_id是相同的。所以我們需要與這個專欄建立聯繫。

我創造了這個查詢:

SELECT * FROM #__mt_links link INNER JOIN #__mt_cfvalues val 
ON link.link_id = val.link_id AND val.value LIKE '%$keywords%'" 

但這種方式我沒有得到所有的結果。

標記示例:在mt_cfvalues表中,有一個列名稱作爲值,它們是需要獲取列表的關鍵字。

實施例1:學院,大學研究所
實施例2:修復,計算機,膝上型

如果我輸入任何以上例如mentiond關鍵字:筆記本電腦,這是第三然後列出甚至我需要證明相清單。指的是使用筆記本電腦標籤的產品,該產品應作爲結果顯示。

我希望我給出明確的信息。請幫 感謝

+0

CONCAT(筆記本電腦,價值)LIKE '%$關鍵字%',你可以試試這個它有幫助ü – Ramki

回答

0
SELECT 
* 
FROM 
    #__mt_links link 
    INNER JOIN #__mt_cfvalues val ON (
     link.link_id = val.link_id 
    ) 
WHERE 
    FIND_IN_SET(val.value,'$keywords') != 0 

$關鍵字需要的樣子:關鍵詞1,關鍵詞,KEYWORD3 ....,keywordN

+0

它沒有工作,這是我得到的,我回聲查詢 SELECT * FROM #__mt_links鏈接INNER JOIN #__mt_cfvalues VAL ON(link.link_id = val.link_id)WHERE FIND_IN_SET(val.value, 'college') 您的搜索查詢沒有結果。 – user2753272

+0

@ user2753272:'Find_In_set'需要2個參數,其中第1個是要搜索的值,第2個是要執行搜索的源。 **例子**:'select .... find_in_set('$ keywords',val.value)' –

+0

是的,我試着用兩個參數試試看: SELECT * FROM #__mt_links link INNER JOIN #__mt_cfvalues val ON link。 link_id = val.link_id WHERE FIND_IN_SET('computer',val.value) 0您的搜索查詢沒有結果。 – user2753272