मान लें कि मेरे पास एक फल तालिका है जिसमें एक ही सेल में डेटा 'Apple Mango Banana Guava' है।

declare @label nvarchar(255) = 'ango' 
select fruit from fruits 
where fruit like '%'+@label+'%'

उपरोक्त क्वेरी के साथ, मुझे आंशिक मिलान के लिए परिणाम मिलता है, लेकिन मैं चाहता हूं कि यह केवल तभी काम करे जब सटीक शब्द 'Apple Mango Banana Guava' स्ट्रिंग से मेल खा रहा हो।

उदाहरण: अगर मैं आम की खोज करता हूं, तो यह मुझे परिणाम दिखाना चाहिए, एंजो के लिए नहीं।

1
Code Wines 20 जून 2019, 20:06

2 जवाब

सबसे बढ़िया उत्तर

आप उपयोग कर सकते हैं:

declare @label nvarchar(255) = 'ango' 
select fruit from fruits 
where (' ' + fruit + ' ') like '% '+@label+' %'

मैं आपकी स्कीमा को सामान्य करने की दृढ़ता से अनुशंसा करता हूं और एकाधिक मानों को एकल कॉलम के रूप में संग्रहीत नहीं करता हूं।

0
Lukasz Szozda 20 जून 2019, 20:10

पूर्ण का उपयोग करें पाठ खोज. यह सक्षम करता है शामिल हैं विधेय। उदाहरण के लिए:

SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Mango"')

SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Man*"')

पहली क्वेरी उन सभी फलों को लौटाती है जिनके नाम में मैंगो शब्द है।

दूसरी क्वेरी उन सभी फलों को लौटाती है जिनके नाम में एक शब्द है जो मनुष्य से शुरू होता है।

0
Jesús López 20 जून 2019, 20:27