MySQL में LIKE और NOT LIKE ऑपरेटर का उपयोग करके पैटर्न आधारित खोज करें, NULL मानों को भी संभालते हुए।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> CollegeCode VARCHAR(100)
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable VALUES
-> ('Col.1995.01.21'), ('Col.2016.11.22'), (NULL),
-> ('Col.2018.12.01'), ('Col.2019.03.12');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----------------+ | CollegeCode | +----------------+ | Col.1995.01.21 | | Col.2016.11.22 | | NULL | | Col.2018.12.01 | | Col.2019.03.12 | +----------------+ 5 rows in set (0.00 sec)
LIKE क्वेरी - "Col" वाले रिकॉर्ड + NULL
mysql> SELECT * FROM DemoTable
-> WHERE CollegeCode LIKE '%Col%' OR CollegeCode IS NULL;
आउटपुट
+----------------+ | CollegeCode | +----------------+ | Col.1995.01.21 | | Col.2016.11.22 | | NULL | | Col.2018.12.01 | | Col.2019.03.12 | +----------------+ 5 rows in set (0.00 sec)
सभी 5 पंक्तियाँ मिलीं क्योंकि सभी में "Col" है या NULL है।
NOT LIKE क्वेरी - "College" न वाले रिकॉर्ड + NULL
mysql> SELECT * FROM DemoTable
-> WHERE CollegeCode NOT LIKE '%College%' OR CollegeCode IS NULL;
आउटपुट
+----------------+ | CollegeCode | +----------------+ | Col.1995.01.21 | | Col.2016.11.22 | | NULL | | Col.2018.12.01 | | Col.2019.03.12 | +----------------+ 5 rows in set (0.00 sec)
कोई भी रिकॉर्ड "College" नहीं रखता (सभी "Col." रखते हैं), इसलिए सभी 5 पंक्तियाँ मिलती हैं।
महत्वपूर्ण NULL व्यवहार:
NULL LIKE 'pattern'→ NULL (न TRUE, न FALSE)NULL NOT LIKE 'pattern'→ NULL- WHERE क्लॉज में NULL को TRUE नहीं माना जाता, इसलिए पंक्ति बाहर हो जाती है
- इसलिए
OR column IS NULLस्पष्ट रूप से जोड़ना आवश्यक है
वाइल्डकार्ड: % (कोई भी वर्ण अनुक्रम), _ (एकल वर्ण)।