2011-06-08 17 views
14

तो 'भयानक दस्तावेज़' LIKE '% doc%' सत्य है, क्योंकि दस्तावेज़ एक उप-स्ट्रिंग है। लेकिन, मैं चाहता हूं कि यह झूठी हो, जबकि 'कमाल डॉक' या 'डॉक कमाल' या 'कमाल डॉक कमाल' सच होना चाहिए। मैं एक तरह से कैसे कर सकता हूँ?केवल पूरे शब्दों को पसंद करें?

मैं स्क्लाइट का उपयोग कर रहा हूं, इसलिए मुझे उम्मीद है कि मुझे कुछ ऐसा उपलब्ध नहीं है जो उपलब्ध नहीं है।

+0

डुप्लीकेट इस्तेमाल कर सकते हैं: http://stackoverflow.com/questions/5444300/search-for-whole-word-match-with-sql-server-like-pattern – GKislin

उत्तर

21

के बारे में इसे विभाजित कैसे चार भागों में -

[MyColumn] Like '% doc %' 
OR [MyColumn] Like '% doc' 
OR [MyColumn] Like 'doc %' 
OR [MyColumn] = 'doc' 

संपादित करें: एक वैकल्पिक दृष्टिकोण (केवल ascii वर्ण के लिए) हो सकता है:

'#'+[MyColumn]+'#' like '%[^a-z0-9]doc[^a-z0-9]%' 

(आप किसी भी विशेष की देखभाल कर सकते हैं चार भी अच्छी तरह से)

ऐसा नहीं लगता है, लेकिन यदि आप अपनी स्थिति के लिए अधिक उपयुक्त हैं, तो आप Full Text Search और Contains का पता लगाना चाहेंगे।

देखें: - MSDN: [ ] (Wildcard - Character(s) to Match) (Transact-SQL)

+3

+1 क्योंकि यह एकमात्र दृष्टिकोण है जिसके बारे में मैं सोच सकता हूं, लेकिन यह मुझे कंपकंपी बनाता है। –

+0

उस मामले को न भूलें जहां स्ट्रिंग सिर्फ 'डॉक्टर' है। – FishBasketGordo

+0

("डॉक्टर" के मिलान के मामले के बारे में अन्य उत्तरों देखें)। –

-4

NOT LIKE '%doc%' के बारे में क्या?

+1

कार्य केवल "DOC" शब्द ढूंढना है - आंशिक शब्द नहीं "DOCument" में –

+0

मुझे लगता है कि सवाल पूरे शब्द से मेल खाने के लिए पसंद है, लेकिन किसी अन्य शब्द के हिस्से के रूप में नहीं। – FishBasketGordo

1

आप कुछ अन्य रैंकों, जैसे '% डॉक%' अथवा 'डॉक%' अथवा '% डॉक' अथवा 'दस्तावेज़'

+0

+1 नहीं खोज सकता "डॉक" केस सहित, लेकिन बेहतर लिखा जा सकता है '=' वहाँ। –

4
WHERE (@string LIKE 'doc %' OR @string LIKE '% doc' OR @string LIKE '% doc %' OR @string = 'doc') 
+1

+1 "डॉक्टर" केस सहित –

संबंधित मुद्दे