2013-02-06 68 views
0

我有一個名爲蛋糕的表,其中包含列:標識,標題,描述,關鍵字。我也有一個名爲關鍵字的表格,蛋糕是父母。關鍵字表格包含兩列:id和關鍵字。我需要編寫以下兩個查詢:查詢匹配多個關鍵字並顯示結果?

  1. 如果成分,如巧克力,榛子,草莓的人的類型(可以是任何數量的用逗號分隔的關鍵字),我需要查詢搜索的蛋糕是包含所有關鍵字和顯示結果。僅顯示包含所有關鍵字的蛋糕。如果沒有蛋糕匹配,我需要一個消息說沒有發現。

  2. 我在搜索框上標有「找到類似的蛋糕」。如果某人輸入了Vanilla Raspberry或示例,則查詢需要在數據庫中找到蛋糕並將其關鍵字與其他蛋糕的關鍵字相匹配並顯示結果。只顯示具有相同關鍵字的蛋糕和最少三個相同的關鍵字。

不知道如何編寫這些查詢。任何幫助表示讚賞。謝謝!

+0

1.你使用'IN'試過嗎? 2.你有什麼嘗試? – Kermit

回答

2
SELECT CakeID, CakeName 
FROM TableName 
WHERE IngredientName IN ('chocolate', 'hazelnut', 'strawberry') 
GROUP BY CakeID, CakeName 
HAVING COUNT(*) = 3 

,或者獨特的成分,每餅沒有強制執行,使用DISTINCT

SELECT CakeID, CakeName 
FROM TableName 
WHERE IngredientName IN ('chocolate', 'hazelnut', 'strawberry') 
GROUP BY CakeID, CakeName 
HAVING COUNT(DISTINCT IngredientName) = 3 
+0

JW-關鍵字搜索可以是任何成分,不僅僅是我引用的那些成分,而且不僅僅是三種成分。例如:香草,豆,巧克力,甘納什,甚至巧克力,香草......我只需要結果顯示任何蛋糕匹配所有搜索條件人進入 – user1913714

+0

你有沒有想過使用參數? –