सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite LIKE
का उपयोग करके पैटर्न मिलान के आधार पर डेटा को कैसे क्वेरी करें ऑपरेटर।
SQLite का परिचय LIKE
ऑपरेटर
कभी-कभी, आप उस संपूर्ण कीवर्ड को ठीक से नहीं जानते हैं जिसे आप क्वेरी करना चाहते हैं। उदाहरण के लिए, आप जान सकते हैं कि आपके सबसे पसंदीदा गीत में शब्द है,elevator
लेकिन आप ठीक-ठीक नाम नहीं जानते।
आंशिक जानकारी के आधार पर डेटा को क्वेरी करने के लिए, आप LIKE
. का उपयोग करते हैं WHERE
. में ऑपरेटर SELECT
. का खंड बयान इस प्रकार है:
SELECT
column_list
FROM
table_name
WHERE
column_1 LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
ध्यान दें कि आप LIKE
. का भी उपयोग कर सकते हैं WHERE
. में ऑपरेटर अन्य कथनों का खंड जैसे DELETE
और UPDATE
।
SQLite पैटर्न बनाने के लिए दो वाइल्डकार्ड प्रदान करता है। वे प्रतिशत चिह्न हैं %
और अंडरस्कोर करें _
:
- प्रतिशत चिह्न
%
वाइल्डकार्ड शून्य या अधिक वर्णों के किसी भी क्रम से मेल खाता है। - अंडरस्कोर
_
वाइल्डकार्ड किसी एक वर्ण से मेल खाता है।
प्रतिशत चिह्न %
वाइल्डकार्ड उदाहरण
s%
पैटर्न जो प्रतिशत चिह्न वाइल्डकार्ड का उपयोग करता है ( %
) s
. से शुरू होने वाली किसी भी स्ट्रिंग से मेल खाता है उदा.,son
और so
।
%er
पैटर्न किसी भी स्ट्रिंग से मेल खाता है जो er
. के साथ समाप्त होता है जैसे peter
, clever
, आदि.
और %per%
पैटर्न किसी भी स्ट्रिंग से मेल खाता है जिसमें per
. होता है जैसे percent
और peeper
।
अंडरस्कोर _
वाइल्डकार्ड उदाहरण
h_nt
पैटर्न मैच hunt
, hint
, आदि। __pple
पैटर्न से मेल खाता है topple
, supple
, tipple
, आदि।
ध्यान दें कि SQLite LIKE
ऑपरेटर केस-असंवेदनशील है। इसका मतलब है "A" LIKE "a"
सच है।
हालांकि, यूनिकोड वर्णों के लिए जो ASCII श्रेणी में नहीं हैं, LIKE
ऑपरेटर केस सेंसिटिव होता है जैसे, "Ä" LIKE "ä"
गलत है।
यदि आप LIKE
बनाना चाहते हैं तो ऑपरेटर केस-संवेदी रूप से काम करता है, आपको निम्नलिखित PRAGMA का उपयोग करने की आवश्यकता है:
PRAGMA case_sensitive_like = true;
Code language: SQL (Structured Query Language) (sql)
SQLite LIKE
उदाहरण
हम तालिका का उपयोग करेंगे tracks
प्रदर्शन के लिए नमूना डेटाबेस में।
उन ट्रैक को खोजने के लिए जिनके नाम Wild
. से शुरू होते हैं शाब्दिक स्ट्रिंग, आप प्रतिशत चिह्न का उपयोग करते हैं %
पैटर्न के अंत में वाइल्डकार्ड।
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE 'Wild%'
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
उन ट्रैक को खोजने के लिए जिनके नाम Wild
. के साथ समाप्त होते हैं शब्द, आप %
. का उपयोग करते हैं पैटर्न की शुरुआत में वाइल्डकार्ड।
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild'
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
उन ट्रैक को खोजने के लिए जिनके नाम में Wild
है शाब्दिक स्ट्रिंग, आप %
use का उपयोग करते हैं पैटर्न के आरंभ और अंत में वाइल्डकार्ड:
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild%';
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
निम्न कथन उन ट्रैक्स को ढूंढता है जिनके नाम में शामिल हैं:शून्य या अधिक वर्ण (%
), उसके बाद Br
, उसके बाद एक वर्ण ( _
), उसके बाद wn
, और उसके बाद शून्य या अधिक वर्ण ( %
)।
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Br_wn%';
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
SQLite LIKE
ESCAPE
के साथ खंड
यदि आप जिस पैटर्न का मिलान करना चाहते हैं उसमें %
. है या _
, आपको वैकल्पिक ESCAPE
. में एस्केप वर्ण का उपयोग करना चाहिए खंड इस प्रकार है:
column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)
जब आप ESCAPE
. निर्दिष्ट करते हैं क्लॉज, LIKE
ऑपरेटर expression
. का मूल्यांकन करेगा जो ESCAPE
. का अनुसरण करता है एक स्ट्रिंग के लिए कीवर्ड जिसमें एक एकल वर्ण, या एक एस्केप वर्ण होता है।
फिर आप इस एस्केप कैरेक्टर को पैटर्न में शाब्दिक प्रतिशत चिह्न (%) या अंडरस्कोर (_
शामिल करने के लिए उपयोग कर सकते हैं। ) LIKE
ऑपरेटर प्रतिशत चिह्न का मूल्यांकन करता है (%
) या अंडरस्कोर (_
) जो एस्केप कैरेक्टर को एक शाब्दिक स्ट्रिंग के रूप में फॉलो करता है, वाइल्डकार्ड कैरेक्टर के रूप में नहीं।
मान लीजिए आप स्ट्रिंग से मेल खाना चाहते हैं 10%
एक तालिका के एक कॉलम में। हालाँकि, SQLite प्रतिशत प्रतीक की व्याख्या करता है %
वाइल्डकार्ड चरित्र के रूप में। इसलिए, आपको इस प्रतिशत प्रतीक %
. से बचना होगा एस्केप कैरेक्टर का उपयोग करना:
column_1 LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
इस अभिव्यक्ति में, LIKE
ऑपरेटर पहले % और अंतिम % प्रतिशत संकेतों को वाइल्डकार्ड के रूप में और दूसरे प्रतिशत चिह्न को शाब्दिक प्रतिशत प्रतीक के रूप में व्याख्यायित करता है।
ध्यान दें कि आप अन्य वर्णों को एस्केप वर्ण के रूप में उपयोग कर सकते हैं जैसे, /, @, $.
निम्नलिखित उदाहरण पर विचार करें:
सबसे पहले, एक टेबल बनाएं t
जिसमें एक कॉलम है:
CREATE TABLE t(
c TEXT
);
Code language: SQL (Structured Query Language) (sql)
इसके बाद, टेबल में कुछ पंक्तियां डालें t
:
INSERT INTO t(c)
VALUES('10% increase'),
('10 times decrease'),
('100% vs. last year'),
('20% increase next year');
Code language: SQL (Structured Query Language) (sql)
फिर, t
. से डेटा क्वेरी करें तालिका:
SELECT * FROM t;
Code language: SQL (Structured Query Language) (sql)
c
----------------------
10% increase
10 times decrease
100% vs. last year
20% increase next year
Code language: Shell Session (shell)
चौथा, उस पंक्ति को खोजने का प्रयास करें जिसका मान c
. में है कॉलम में 10%
है शाब्दिक स्ट्रिंग:
SELECT c
FROM t
WHERE c LIKE '%10%%';
Code language: SQL (Structured Query Language) (sql)
हालाँकि, यह उन पंक्तियों को लौटाता है जिनके c कॉलम में मान 10 होते हैं:
c
------------------
10% increase
10 times decrease
100% vs. last year
पांचवां, सही परिणाम प्राप्त करने के लिए, आप ESCAPE
. का उपयोग करें खंड जैसा कि निम्नलिखित प्रश्न में दिखाया गया है:
SELECT c
FROM t
WHERE c LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
यहाँ परिणाम सेट है:
c
------------
10% increase
Code language: Shell Session (shell)
इस ट्यूटोरियल में, आपने सीखा है कि SQLite LIKE
. का उपयोग कैसे किया जाता है दो वाइल्डकार्ड वर्णों के प्रतिशत चिह्न (%
. का उपयोग करके पैटर्न मिलान के आधार पर डेटा क्वेरी करने के लिए ऑपरेटर ) और अंडरस्कोर (_
)।