के हिस्से में एक LIKE क्लॉज का उपयोग करें, क्या मैं एक संग्रहीत प्रक्रिया/क्वेरी बनाते समय INNER जॉइन के हिस्से के रूप में एक LIKE मानदंड का उपयोग कर सकता/सकती हूं? मुझे यकीन नहीं है कि मैं सही चीज़ पूछ रहा हूं, इसलिए मुझे समझाएं।एक INNER JOIN
मैं एक ऐसी प्रक्रिया तैयार कर रहा हूं जो टेक्स्ट वाले एक कॉलम में खोजे जाने वाले कीवर्ड की एक सूची ले जायेगा। अगर मैं कंसोल पर बैठा हुआ था, मैं इसे इस तरह के रूप अमल चाहते हैं:
SELECT Id, Name, Description
FROM dbo.Card
WHERE Description LIKE '%warrior%'
OR
Description LIKE '%fiend%'
OR
Description LIKE '%damage%'
लेकिन एक चाल मैं थोड़ी देर उठाया में एक संग्रहीत प्रक्रिया सूची पार्स करने में है "दृढ़ता से टाइप किया" सूची पार्स करने के लिए जाना एक तालिका परिवर्तनीय/अस्थायी तालिका में, इसे उचित प्रकार में परिवर्तित करना और फिर मेरे अंतिम परिणाम सेट में उस तालिका के विरुद्ध एक INNER जॉइन करना। प्रक्रिया में पूर्णांक आईडी की एक सूची कहने पर यह बहुत अच्छा काम करता है। मैं एक अंतिम क्वेरी को हवा में डालता हूं जो इस तरह दिखता है:
SELECT Id, Name, Description
FROM dbo.Card
INNER JOIN @tblExclusiveCard ON dbo.Card.Id = @tblExclusiveCard.CardId
मैं इस चाल का उपयोग तारों की सूची के साथ करना चाहता हूं। लेकिन चूंकि मैं एक विशेष खोजशब्द की तलाश में हूं, इसलिए मैं LIKE क्लॉज का उपयोग करने जा रहा हूं। तो आदर्श रूप में मैं सोच रहा हूं कि मेरी अंतिम क्वेरी इस तरह दिखती है:
SELECT Id, Name, Description
FROM dbo.Card
INNER JOIN @tblKeyword ON dbo.Card.Description LIKE '%' + @tblKeyword.Value + '%'
क्या यह संभव/अनुशंसित है?
क्या ऐसा कुछ करने का बेहतर तरीका है?
कारण मैं खंड के दोनों सिरों पर वाइल्डकार्ड डाल रहा हूं क्योंकि वहाँ "शैतान", "जानवर योद्धा", "प्रत्यक्ष-नुकसान" और "लड़ाई-क्षति" शब्दों में इस्तेमाल किया जाता है कार्ड ग्रंथों।
मुझे इंप्रेशन मिल रहा है कि प्रदर्शन के आधार पर, मैं या तो निर्दिष्ट क्वेरी का उपयोग कर सकता हूं या एक ही कार्य को पूरा करने के लिए एक पूर्ण-पाठ कीवर्ड खोज का उपयोग कर सकता हूं?
सर्वर को फ़ील्ड पर टेक्स्ट इंडेक्स करने के अलावा, मैं टेक्स्ट खोजना चाहता हूं, क्या मुझे कुछ और करने की ज़रूरत है?
मुझे लगता है कि 'यह होना चाहिए concat ('%', a.type, '%')' http।: //stackoverflow.com/a/23276513/443900 – Lee