2016-03-01 39 views
-1

我有一個like查詢的問題,我希望搜索字段用'黃金或青銅鑽石'返回任何字段。用戶輸入搜索引擎中的黃金,並且不返回任何數據。這是查詢:如何在MySQL中對多個關鍵字執行WHERE LIKE查詢?

$sql = ("SELECT metals, FROM metaltable WHERE search LIKE '%$usersearch%'"); 

因爲字符串包含「什麼是黃金」,它不返回任何數據,如果我在黃金輸入,則返回的數據,因爲它不具備「內容是

表stucture是:

***metaltable*** 
id  metals 
1  gold 
2  silver 
3  bronze 
4  diamond 

我希望查詢與關鍵字返回任何行不管用戶在搜索引擎中有多少個字符輸入。

例如,如果用戶搜索什麼是鑽石的組件,我希望查詢返回第4行,因爲該關鍵字'鑽石'在搜索中。

+0

我想你想要'WHERE金屬LIKE'%$ usersearch%'''而不是'WHERE search LIKE'%$ usersearch%'''。 – cFreed

+0

'SELECT metals,'<尾隨逗號,是一個即時語法錯誤。 –

+1

你可以爆炸你的字符串以獲得一組單詞。然後你可以循環這個數組並追加SQL查詢以匹配這些關鍵字。 –

回答

0
SELECT DISTINCT Keyword,b.metals 
FROM(
     SELECT 'usersearch' AS Keyword 
     FROM metaltable 
    ) AS a 
INNER JOIN metaltable AS b 
ON a.Keyword like '%'+b.metals+'%' 

把你的用戶輸入設置爲'usersearch',這將是工作。 當你輸入'黃金或青銅鑽石'時,它會顯示三條記錄。

相關問題