1

我有一個基本的「財產袋」表,存儲有關我的主表「卡」的屬性。所以,當我要開始做了卡的一些高級搜索,我可以做這樣的事情:如何搜索SQL中的「Property Bag」表?

SELECT dbo.Card.Id, dbo.Card.Name 
    FROM dbo.Card 
     INNER JOIN dbo.CardProperty ON dbo.CardProperty.IdCrd = dbo.Card.Id 
WHERE dbo.CardProperty.IdPrp = 3 AND dbo.CardProperty.Value = 'Fiend' 
INTERSECT 
    SELECT dbo.Card.Id, dbo.Card.Name 
    FROM dbo.Card 
     INNER JOIN dbo.CardProperty ON dbo.CardProperty.IdCrd = dbo.Card.Id 
WHERE (dbo.CardProperty.IdPrp = 10 AND (dbo.CardProperty.Value = 'Wind' OR dbo.CardProperty.Value = 'Fire')) 

我需要做的就是這個主意提取到一些類型的存儲過程,所以最好我可以通過在屬性/值組合列表中並獲取搜索結果。

最初這將是一個「嚴格」的搜索意味着結果必須匹配查詢中的所有元素,但我也想有一個「鬆散」的查詢,以便它可以匹配任何結果查詢。

我看起來似乎並沒有把我的頭圍繞在這一個。我以前的版本是爲了生成一些大量的SQL查詢來執行其中的很多AND/OR子句,但是我希望這次能夠做一些更優雅的事情。我如何去做這件事?

回答