मुख्य सामग्री पर जाएँ

SQL LIKE पैटर्न मिलान: उदाहरणों के साथ एक व्यावहारिक गाइड

विशिष्ट स्ट्रिंग मैचों पर SQL रिकॉर्ड फ़िल्टर करने के लिए LIKE का उपयोग करें। यह ट्यूटोरियल आपको LIKE के साथ वाइल्डकार्ड, NOT, LOWER, UPPER, और CASE WHEN का उपयोग करना सिखाता है।
· 8 मि॰ पढ़ें

AI के साथ खोजें

चाहें या नहीं, SQL में LIKE ऑपरेटर आवश्यक है। यह डेटा वैज्ञानिकों और डेटा इंजीनियरोंको विशिष्ट स्ट्रिंग मैचों पर डेटा फ़िल्टर करने की शक्ति देता है। इस ट्यूटोरियल में, मैं आपको LIKE से पैटर्न मिलान करना सिखाऊंगा—बेसिक्स से लेकर उन्नत तकनीकों तक।

संक्षेप में

  • SQL का LIKE ऑपरेटर पैटर्न मिलान के लिए दो वाइल्डकार्ड का उपयोग करता है: % (किसी भी संख्या के अक्षर) और _ (ठीक एक अक्षर)
  • लचीले फ़िल्टरिंग के लिए LIKE को NOT, LOWER()/UPPER(), OR/AND, और CASE WHEN के साथ मिलाएँ
  • केस-इंसेंसिटिव मिलान के लिए ILIKE (PostgreSQL/Redshift) का उपयोग करें, या कॉलम को LOWER() में लपेटें
  • लीडिंग % वाइल्डकार्ड (जैसे, %pattern) इंडेक्स उपयोग को निष्क्रिय कर देता है—बड़े डेटासेट के लिए फुल-टेक्स्ट सर्च पर विचार करें
  • SQL Server में कैरेक्टर रेंज के लिए [] और [^] सपोर्ट है; MySQL में रेगेक्स-आधारित मिलान के लिए RLIKE उपलब्ध है

पैटर्न मिलान के लिए SQL LIKE ऑपरेटर

नोट: इस ट्यूटोरियल के सभी उदाहरण कोड स्वयं चलाने के लिए, आप SQL इंस्टॉल और सैंपल डेटा वाली डेटाबेस के साथ निःशुल्क DataLab वर्कबुक बनाएँ।

मान लीजिए आपके पास एक employees टेबल है और आप वे सभी नाम ढूँढना चाहते हैं जो ‘A’ से शुरू होते हैं:

employees

emp_no

birth_date

first_name

last_name

gender

hire_date

10001

1953-09-02T00:00:00.000Z

Georgi

Facello

M

1986-06-26T00:00:00.000Z

10002

1964-06-02T00:00:00.000Z

Bezalel

Simmel

F

1985-11-21T00:00:00.000Z

10003

1959-12-03T00:00:00.000Z

Parto

Bamford

M

1986-08-28T00:00:00.000Z

आप चाहें तो टेबल को मैन्युअली खंगालने में समय लगा सकते हैं। पर जब आपके पास LIKE ऑपरेटर है तो ऐसा क्यों करेंगे?

SELECT DISTINCT
	first_name
FROM employees
WHERE first_name LIKE 'A%'

यहाँ कमाल है क्लॉज़ `WHERE first_name LIKE ‘A%’` में, जिसका अर्थ है “वे सभी first_name ढूँढें जो "A" से शुरू होते हैं और आगे किसी भी संख्या के अक्षरों पर समाप्त होते हैं।” यहाँ A% को मिलान के लिए पैटर्न कहते हैं। 

% LIKE ऑपरेटर के साथ उपयोग करने वाला एकमात्र वाइल्डकार्ड नहीं है। आप अंडरस्कोर चिह्न _ का भी उपयोग कर सकते हैं:

  • `%` किसी भी संख्या के अक्षरों से मेल खाता है।
  • _ किसी एकल अक्षर से मेल खाता है।

सिंटैक्स याद रखना आसान है। यह बस इतना है:

column_name LIKE pattern

आप LIKE का उपयोग करके तरह-तरह के पैटर्न-मिलान कर सकते हैं। ऐसे करें:

शुरुआती SQL LIKE उदाहरण

नीचे, हमने दिखाया है कि LIKE स्टेटमेंट का व्यावहारिक उपयोग कैसे करें और हमारे सैंपल डेटा सेट के परिणाम क्या हैं। 

1. सटीक स्ट्रिंग मिलान के लिए LIKE का उपयोग करें

यदि आप सटीक स्ट्रिंग मिलान करना चाहते हैं, तो ‘%’ या ‘_’ के बिना LIKE का उपयोग करें

SELECT
    first_name, last_name
FROM employees
WHERE first_name LIKE 'Barry' -- the same as WHERE first_name = ‘Barry’

2. किसी भी संख्या के अक्षरों से मिलाने के लिए ‘%’ का उपयोग करें 

‘%’ किसी भी (यहाँ तक कि शून्य) संख्या के अक्षरों—अंक, वर्णमाला, या प्रतीक—से मेल खा सकता है।

मान लीजिए आप उन सभी कर्मचारियों को ढूँढना चाहते हैं जिनका नाम ‘Adam’ से शुरू होता है; आप पैटर्न ‘Adam%’ का उपयोग कर सकते हैं

SELECT DISTINCT
    first_name
FROM employees
WHERE first_name LIKE 'Adam%'

वे नाम ढूँढने के लिए जो "z" पर समाप्त होते हैं, पैटर्न ‘%z’ आज़माएँ। आप एक ही पैटर्न में कई ‘%’ भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप ऐसे नाम ढूँढना चाहते हैं जिनमें "z" शामिल हो, तो ‘%z%’ का उपयोग करें।

3. एक (और केवल एक) अक्षर से मिलाने के लिए ‘_’ का उपयोग करें

हैंगमैन गेम की तरह, अंडरस्कोर चिह्न _ में केवल एक अक्षर की जगह होती है।

Le_n को कितने तरीकों से लिखा जा सकता है? यह पैटर्न "Lexn", "LeAn", "Le3n" या "Le-n" जैसे किसी भी रूप से मेल खाएगा।

SELECT DISTINCT
    first_name
FROM employees
WHERE first_name LIKE 'Le_n'

वो अलग-अलग नाम कौन से हैं जिनमें केवल तीन अक्षर हैं? हम पैटर्न के रूप में लगातार तीन अंडरस्कोर ___ का उपयोग करके पता लगा सकते हैं।

SELECT DISTINCT
    first_name
FROM employees
WHERE first_name LIKE '___'

4. किसी भी पैटर्न से मिलाने के लिए ‘%’ और ‘_’ दोनों का उपयोग करें

बिल्कुल, आप रोचक पैटर्न बनाने के लिए ‘%’ और ‘_’ दोनों का उपयोग कर सकते हैं। 

SELECT DISTINCT
    first_name
FROM employees
WHERE first_name LIKE '%ann_'

पैटर्न ‘%ann_’ उन स्ट्रिंग्स से मेल खाता है जो किसी भी संख्या के अक्षरों से शुरू होती हैं और अंत में "ann" और एक अन्य अक्षर होता है।

5. ऐसा स्ट्रिंग ढूँढने के लिए NOT का उपयोग करें जो पैटर्न से मेल न खाए

यदि आप वे सभी पंक्तियाँ ढूँढना चाहते हैं जो किसी विशिष्ट कसौटी से मेल नहीं खातीं? आप NOT LIKE ऑपरेटर का उपयोग कर सकते हैं। उदाहरण के लिए, "Staff" के अलावा सभी शीर्षक ढूँढने के लिए, हम यह सिंटैक्स उपयोग कर सकते हैं

`WHERE title NOT LIKE ‘Staff’`

यह ठीक उसी सिंटैक्स के बराबर है

WHERE title != 'Staff'
SELECT DISTINCT
    title
FROM titles
WHERE title NOT LIKE 'Staff'

बिल्कुल, आप हमारे बताए किसी भी पैटर्न के साथ NOT LIKE का उपयोग कर सकते हैं।

SELECT DISTINCT
    title
FROM titles 
WHERE title NOT LIKE '%engineer'

6. केस-इंसेंसिटिव पैटर्न मिलान के लिए LIKE के साथ LOWER (या UPPER) का उपयोग करें

यदि आपको पैटर्न मिलान करना है पर यह निश्चित नहीं कि स्ट्रिंग लोअरकेस, अपरकेस या मिक्स्ड केस में स्टोर है, तो आप निम्न सिंटैक्स का उपयोग कर सकते हैं।

LOWER(column_name) LIKE pattern

LOWER() फ़ंक्शन सभी स्ट्रिंग्स को लोअरकेस में लौटा देता है, भले ही वे अपर-, लोअर- या मिक्स्ड केस में स्टोर हों। 

इस सिंटैक्स का उपयोग करते समय, सुनिश्चित करें कि आप पैटर्न को पूरी तरह लोअरकेस में लिखें! नहीं तो आपको कोई मैच नहीं मिल सकता।

आप ऊपर के सिंटैक्स में LOWER की जगह UPPER भी इस्तेमाल कर सकते हैं। ध्यान रहे कि पैटर्न को कैपिटल लेटर्स में लिखें।

`UPPER(column_name) LIKE PATTERN`

उदाहरण के लिए, यह जानने के लिए कि किसी कर्मचारी का नाम "Joanne", "JoAnne", "Joanna" या "JoAnna" है, निम्न में से कोई भी चलाएँ:

SELECT DISTINCT
    first_name
FROM employees
WHERE LOWER(first_name) LIKE 'joann_'
SELECT DISTINCT
    first_name
FROM employees
WHERE UPPER(first_name) LIKE 'JOANN_'

7. OR/AND के साथ कई मानों पर SQL LIKE

आप LIKE सिंटैक्स का उपयोग करके कई शर्तों को भी जोड़ सकते हैं। 

उदाहरण के लिए, एक से अधिक LIKE पैटर्न में से कम से कम एक को संतुष्ट करने वाले परिणाम ढूँढने के लिए OR कंडीशन का उपयोग करें।

SELECT DISTINCT
    first_name
FROM employees
WHERE
first_name LIKE 'Ad_l' OR
first_name LIKE 'Ad_m'

दूसरी ओर, वह स्ट्रिंग ढूँढने के लिए जो कई LIKE शर्तों से मेल खाती हो, AND कीवर्ड का उपयोग करें।

SELECT DISTINCT
    first_name
FROM employees
WHERE
first_name LIKE '%am%' AND
first_name LIKE '%me%'

जब तक कॉलम का प्रकार वैरिएबल-लेंथ कैरेक्टर (varchar) है, LIKE सिंटैक्स को कई कॉलम पर लागू किया जा सकता है। यह जानते हुए हम उन कर्मचारियों के नाम ढूँढ सकते हैं जिनके आद्याक्षर "Z. Z." हैं

SELECT DISTINCT
    first_name, last_name
FROM employees
WHERE
first_name LIKE 'Z%' AND
last_name LIKE 'Z%'

8. SELECT CASE WHEN क्लॉज़ में LIKE का उपयोग 

अब तक, हमने WHERE क्लॉज़ में रिकॉर्ड चुनने की शर्त के रूप में LIKE पर ध्यान दिया है। हम SELECT क्लॉज़ में भी LIKE उपयोग करते हैं। उदाहरण के लिए, क्या हम जान सकते हैं कि हमारे डेटाबेस में "Adam" नाम वाले कर्मचारी कितने हैं?

SELECT
    COUNT(CASE WHEN first_name LIKE 'Adam' THEN 1 END) num_employees_adam
FROM employees

दूसरी तरफ, "A.Z." आद्याक्षर वाले कर्मचारी कितने हैं?

SELECT
    COUNT(CASE WHEN first_name LIKE 'A%' AND last_name LIKE 'Z%' THEN 1 END) num_employees
FROM employees

SQL LIKE में प्रचलित पैटर्न

त्वरित संदर्भ के लिए हमने जिन पैटर्नों पर चर्चा की, उनका सारांश यहाँ है:

पैटर्नविवरणउदाहरण उपयोग
A%"A" से शुरू होने वाली स्ट्रिंग्स से मेल खाता है"A" से शुरू होने वाले नाम ढूँढना
%z%"z" शामिल करने वाली स्ट्रिंग्स से मेल खाता है"z" शामिल नाम ढूँढना
Le_n"Len", "Leon" आदि जैसे स्ट्रिंग्स से मेल खाता हैएकल अक्षर भिन्नता वाले नाम ढूँढना
%ann_"ann" और एक अतिरिक्त अक्षर पर समाप्त होने वाली स्ट्रिंग्स से मेल खाता है"Joann", "Joanna" जैसे नाम ढूँढना

SQL LIKE के इंटरमीडिएट उदाहरण

LIKE फ़ंक्शन अलग-अलग SQL फ्लेवर्स (जैसे PostgreSQL, MySQL, Redshift, आदि) में काफी हद तक समान है। हालाँकि, कुछ में LIKE के अतिरिक्त रूपांतर होते हैं जिनका उल्लेख करना उचित है। 

1. ILIKE ऑपरेटर

Redshift और PostgreSQL में उपलब्ध, ILIKE LIKE का केस-इंसेंसिटिव संस्करण है। इस प्रकार, नीचे दी गई सभी क्वेरी समानार्थी हैं।

SELECT
  datacamp ILIKE ‘datacamp’, -- returns TRUE
  DATACAMP ILIKE ‘datacamp’, -- returns TRUE
  Datacamp ILIKE ‘datacamp’, -- returns TRUE
  datacamp ILIKE ‘DataCamp’, -- returns TRUE

2. वाइल्डकार्ड अक्षरों के रूप में स्क्वायर ब्रैकेट [] और [^] का उपयोग

T-SQL या SQL Server के उपयोगकर्ताओं के पास अधिक जटिल पैटर्न मिलान के लिए अतिरिक्त वाइल्डकार्ड अक्षर होते हैं।

स्क्वायर ब्रैकेट सिंटैक्स [] दिए गए रेंज या सेट में किसी विशेष अक्षर से मेल खाता है। उदाहरण के लिए, निम्न सभी TRUE लौटाएँगे।

SELECT
  ‘Carson’ LIKE ‘[C-K]arson’, -- returns TRUE because C is in the range C-K
  ‘Karson’ LIKE ‘[C-K]arson’, -- returns TRUE because K is in range
  ‘Larson’ LIKE ‘[CKL]arson’, -- returns TRUE because L is in the set [CKL]
  ‘Parson’ LIKE ‘[C-K]arson’ -- returns FALSE because P is out of range

स्क्वायर-ब्रैकेट में कैरेट [^] वाइल्डकार्ड किसी भी एकल अक्षर से मेल खाता है जो निर्दिष्ट रेंज या सेट में नहीं है। क्या आप देख सकते हैं कि निम्न परिणाम ऐसे क्यों हैं? 

SELECT
  ‘Carson’ LIKE ‘[^C-K]arson’ -- returns FALSE 
  ‘Parson’ LIKE ‘[^C-K]arson’ -- returns TRUE

यहाँ, क्योंकि "C" [C-K] रेंज के भीतर है, पैटर्न ‘C’ [^C-K] से मेल नहीं खाएगा। इस प्रकार, "Carson" [^C-K]arson से मेल नहीं खाएगा, लेकिन "Parson" मेल खाएगा।

3. RLIKE ऑपरेटर

MySQL में उपलब्ध RLIKE ऑपरेटर पैटर्न में रेगुलर एक्सप्रेशन (RegEx) को पहचानता है। RegEx उन्नत पैटर्न मिलान के लिए शक्तिशाली और बहुमुखी टूल है। 

यदि आपके SQL फ्लेवर में RLIKE सपोर्ट है, तो RegEx की बुनियादी समझ होना फायदेमंद है। आप हमारे Regular Expressions in Python कोर्स से RegEx के बारे में और जान सकते हैं।

SELECT DISTINCT
    first_name
FROM employees
WHERE first_name RLIKE 'Susann[a-e]'

4. ‘~~’ ऑपरेटर

PostgreSQL में, ‘~~’ LIKE के पूरी तरह समानार्थी है। ILIKE, NOT LIKE, और NOT ILIKE के समकक्ष भी मौजूद हैं।

ऑपरेटर

समकक्ष

~~

LIKE

~~*

ILIKE

!~~

NOT LIKE

!~~*

NOT ILIKE

समस्या निवारण: LIKE के साथ आम त्रुटियाँ और गलितयां

LIKE का उपयोग करते समय आपको जिन सामान्य त्रुटियों का सामना हो सकता है, और उन्हें कैसे ठीक करें:

  1. कोई परिणाम नहीं मिला: केस-संवेदनशीलता जाँचें। कुछ SQL बोलियों में, डिफ़ॉल्ट रूप से LIKE केस-सेंसिटिव होता है। केस-इंसेंसिटिव मिलान के लिए LOWER() या (यदि समर्थित हो) ILIKE का उपयोग करें।
  2. वाइल्डकार्ड के साथ अप्रत्याशित परिणाम: सुनिश्चित करें कि % और _ सही ढंग से उपयोग किए गए हैं। % किसी भी संख्या के अक्षरों से मेल खाता है, जबकि _ ठीक एक अक्षर से। इनका गलत स्थान पर उपयोग अप्रत्याशित मैच दे सकता है।
  3. प्रदर्शन समस्याएँ: यदि आपकी क्वेरी धीमी है, तो पैटर्न में लीडिंग % (जैसे, %pattern) देखें, जो इंडेक्स उपयोग को निष्क्रिय करता है। संभव हो तो पैटर्न को किसी विशिष्ट स्ट्रिंग से शुरू करने के लिए फिर से लिखें। प्रदर्शन पर अधिक जानकारी के लिए नीचे दिए सेक्शन देखें। 
  4. SQL इंजेक्शन त्रुटियाँ: यदि आप अपनी क्वेरी में यूज़र इनपुट का उपयोग कर रहे हैं, तो सुनिश्चित करें कि उसे ठीक से पैरामीटराइज़ किया गया है ताकि SQL इंजेक्शन कमजोरियों से बचा जा सके।
  5. पैटर्न में विशेष अक्षर: यदि सर्च स्ट्रिंग में % और _ जैसे वाइल्डकार्ड प्रतीकों का आशय लिटरल कैरेक्टर के रूप में है, तो उन्हें एस्केप करना होगा। एस्केप कैरेक्टर निर्धारित करने के लिए अपनी क्वेरी में ESCAPE का उपयोग करें।
WHERE column_name LIKE '50\% OFF' ESCAPE '\'

LIKE ऑपरेटर का उपयोग करते समय प्रदर्शन संबंधी विचार

LIKE ऑपरेटर बढ़िया है, लेकिन बड़े डेटासेट पर उपयोग करने से यह क्वेरी प्रदर्शन को प्रभावित कर सकता है। इसके उपयोग को अनुकूलित करने के लिए ये बातें ध्यान में रखें:

  1. इंडेक्स: जब पैटर्न किसी स्थिर स्ट्रिंग से शुरू होता है, जैसे Adam%, तब LIKE सबसे अच्छा प्रदर्शन करता है क्योंकि डेटाबेस इंडेक्स का उपयोग कर सकता है। हालाँकि, %Adam या %Adam% जैसे पैटर्न फुल टेबल स्कैन की माँग करते हैं, जो बड़े टेबल पर धीमे हो सकते हैं।
  2. लीडिंग वाइल्डकार्ड से बचें: % से पैटर्न शुरू करना, जैसे %pattern, इंडेक्स उपयोग को निष्क्रिय कर देता है, क्योंकि डेटाबेस को हर रिकॉर्ड देखना पड़ता है।
  3. कोलेशन और केस-इंसेंसिटिव मिलान: केस-इंसेंसिटिव सर्च के लिए कॉलम पर LOWER() या UPPER() जैसी फ़ंक्शंस का उपयोग भी इंडेक्स को अप्रयोज्य बना सकता है। इसके बजाय, सुनिश्चित करें कि डेटाबेस कोलेशन केस-इंसेंसिटिव तुलना के लिए उपयुक्त रूप से सेट है।
  4. वैकल्पिक दृष्टिकोण: बड़े डेटासेट के लिए, जटिल या बार-बार होने वाले स्ट्रिंग मिलान में फुल-टेक्स्ट सर्च या डेटाबेस-विशिष्ट सर्च सुविधाओं का उपयोग करें, जैसे PostgreSQL में GIN इंडेक्स या MySQL में FULLTEXT इंडेक्स।
  5. चयनात्मक क्वेरी: LIKE ऑपरेटर द्वारा प्रोसेस किए गए डेटा को कम करने के लिए दिनांक रेंज या संख्यात्मक कॉलम जैसे अतिरिक्त फ़िल्टर का उपयोग करें।

LIKE बनाम फुल-टेक्स्ट सर्च

फुल-टेक्स्ट सर्च MySQL, PostgreSQL और SQL Server जैसे डेटाबेस में उपलब्ध है। जहाँ LIKE सीधे पैटर्न मिलान के लिए अच्छा काम करता है, वहीं फुल-टेक्स्ट सर्च अधिक उन्नत टेक्स्ट क्वेरी के लिए बनाया गया है। दोनों दृष्टिकोणों की तुलना ऐसे है:

विशेषताLIKEफुल-टेक्स्ट सर्च
सिंटैक्सWHERE col LIKE '%term%'MATCH(col) AGAINST('term')
वाइल्डकार्ड%, _बूलियन ऑपरेटर, नैचुरल लैंग्वेज
इंडेक्स सपोर्टकेवल प्रीफिक्स पैटर्न (उदा., term%)समर्पित फुल-टेक्स्ट इंडेक्स (GIN, FULLTEXT)
बड़े टेबल पर प्रदर्शनलीडिंग % के साथ धीमाबड़े टेक्स्ट कॉलम के लिए अनुकूलित
प्रासंगिकता रैंकिंगनहींहाँ
लिंग्विस्टिक विशेषताएँनहींस्टेमिंग, स्टॉप वर्ड्स, सिनोनिम्स
सबसे उपयुक्तसटीक पैटर्न, छोटे से मध्यम डेटासेटकीवर्ड सर्च, बड़े टेक्स्ट कॉलम

पैटर्न मिलान से आगे उन्नत स्ट्रिंग ऑपरेशंस के लिए, SQL CONTAINS ट्यूटोरियल देखें।

SQL LIKE का आत्मविश्वास से उपयोग करें

SQL फ़ंक्शंस में महारत डेटा साइंस में सफल होने की कुंजी है, और SQL का LIKE कमांड भी अपवाद नहीं है। SQL पर अच्छी पकड़ आपके एनालिटिक्स की रफ़्तार बढ़ा देगी, इसलिए इसे अच्छी तरह सीखें!

SQL पर और संसाधनों के लिए, अवश्य देखें:

FAQs

क्या LIKE ऑपरेटर का उपयोग संख्यात्मक डेटा प्रकारों के साथ किया जा सकता है?

नहीं, LIKE ऑपरेटर विशेष रूप से CHAR, VARCHAR और TEXT जैसे स्ट्रिंग डेटा प्रकारों के साथ पैटर्न मिलान के लिए प्रयुक्त होता है। संख्यात्मक डेटा प्रकारों के लिए, =, <, > आदि का उपयोग किया जाता है।

LIKE का प्रदर्शन अन्य SQL ऑपरेटरों की तुलना में कैसा है?

LIKE ऑपरेटर कम कुशल हो सकता है, खासकर उन पैटर्न्स के साथ जो % से शुरू होते हैं, क्योंकि इससे फुल टेबल स्कैन की आवश्यकता होती है। ऐसे मामलों में इंडेक्सिंग का प्रभावी उपयोग नहीं हो पाता, जिससे बड़े डेटासेट पर क्वेरी धीमी हो सकती हैं।

SQL में LIKE का उपयोग करते समय क्या कोई सुरक्षा संबंधी चिंताएँ हैं?

हालाँकि LIKE स्वयं में असुरक्षित नहीं है, लेकिन यूज़र इनपुट को सीधे SQL क्वेरी में उपयोग करना SQL इंजेक्शन हमलों का कारण बन सकता है। हमेशा इनपुट को सैनिटाइज़ करें और जोखिम घटाने के लिए पैरामीटराइज़्ड क्वेरी पर विचार करें।

ऐसे SQL फ्लेवर में जो ILIKE सपोर्ट नहीं करता, आप केस-सेंसिटिव सर्च को कैसे हैंडल करेंगे?

जिन SQL फ्लेवर्स में ILIKE नहीं है, उनमें आप LOWER(column_name) LIKE LOWER(pattern) या UPPER(column_name) LIKE UPPER(pattern) का उपयोग करके केस-इंसेंसिटिव सर्च कर सकते हैं।

क्या LIKE का उपयोग नॉन-ASCII अक्षरों के साथ किया जा सकता है?

हाँ, LIKE का उपयोग नॉन-ASCII अक्षरों के साथ किया जा सकता है, बशर्ते डेटाबेस एन्कोडिंग उन अक्षरों को सपोर्ट करती हो। इसमें UTF-8 शामिल है, जो व्यापक कैरेक्टर रेंज को सपोर्ट करने के लिए आमतौर पर उपयोग होता है।

आप किसी लिटरल वाइल्डकार्ड कैरेक्टर (जैसे, % या _) की खोज के लिए LIKE क्वेरी को कैसे संशोधित करेंगे?

लिटरल % या _ की खोज करने के लिए आपको एस्केप कैरेक्टर का उपयोग करना होगा। उदाहरण के लिए, SQL Server में, आप LIKE 'A[%]%' ESCAPE '%' का उपयोग कर सकते हैं ताकि स्ट्रिंग्स में लिटरल % की खोज की जा सके।

खोज क्षमता बेहतर करने के लिए क्या आप LIKE को अन्य SQL फ़ंक्शंस के साथ जोड़ सकते हैं?

हाँ, LIKE को CONCAT या SUBSTRING जैसी फ़ंक्शंस के साथ जोड़कर खोज पैटर्न को और परिशुद्ध किया जा सकता है। उदाहरण के लिए, CONCAT का उपयोग करके अन्य कॉलम वैल्यूज़ के आधार पर डायनेमिक पैटर्न बनाए जा सकते हैं।

JOIN ऑपरेशंस के साथ LIKE का उपयोग कैसे किया जा सकता है?

LIKE को JOIN कंडीशंस में लागू किया जा सकता है ताकि अलग-अलग टेबल के कॉलम्स के बीच पैटर्न मिलाया जा सके। उदाहरण के लिए, ON table1.col1 LIKE table2.col2 || '%' का उपयोग उन टेबल्स को जॉइन करने के लिए किया जा सकता है जहाँ table1.col1 की शुरुआत table2.col2 से होती है।

जटिल पैटर्न मिलान के लिए LIKE के कुछ विकल्प क्या हैं?

और अधिक जटिल पैटर्न के लिए, वे SQL फ्लेवर्स जो रेगुलर एक्सप्रेशंस सपोर्ट करते हैं—जैसे MySQL का RLIKE या PostgreSQL का SIMILAR TO—का उपयोग किया जा सकता है। ये उन्नत पैटर्न मिलान के लिए समृद्ध सिंटैक्स प्रदान करते हैं।

कॉलम में null मानों को LIKE कैसे हैंडल करता है?

जब किसी कॉलम में null मान होते हैं, तो LIKE इन रिकॉर्ड्स से मेल नहीं खाएगा, क्योंकि null किसी भी स्ट्रिंग या पैटर्न के बराबर नहीं माने जाते। null को शामिल करने के लिए, ऐसी कंडीशन जोड़ें: OR column IS NULL।

विषय