NOT LIKE ऑपरेटर के साथ सिंगल-वर्ड रिकॉर्ड्स फ़िल्टर करना
रिकॉर्ड्स को LIKE ऑपरेटर के आधार पर फ़िल्टर करके केवल सिंगल वर्ड वाले नामों को चुनें। आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Name VARCHAR(50)
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('John Smith');
mysql> INSERT INTO DemoTable VALUES ('John');
mysql> INSERT INTO DemoTable VALUES ('Adam Smith');
mysql> INSERT INTO DemoTable VALUES ('Carol');
mysql> INSERT INTO DemoTable VALUES ('David Miller');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------------+ | Name | +--------------+ | John Smith | | John | | Adam Smith | | Carol | | David Miller | +--------------+
सिंगल वर्ड वाले रिकॉर्ड्स प्रदर्शित करने के लिए क्वेरी (स्पेस वाले नामों को बाहर करने के लिए NOT LIKE '% %'):
mysql> SELECT * FROM DemoTable WHERE Name NOT LIKE '% %';
आउटपुट:
+-------+ | Name | +-------+ | John | | Carol | +-------+
व्याख्या:
LIKE '% %'पैटर्न किसी भी ऐसे स्ट्रिंग से मेल खाता है जिसमें कम से कम एक स्पेस होNOT LIKE '% %'उन स्ट्रिंग्स को चुनता है जिनमें कोई स्पेस नहीं है (यानी सिंगल वर्ड)- वाइल्डकार्ड
%किसी भी संख्या में वर्णों को दर्शाता है
सीमाएं: यह तरीका टैब, नई लाइन, या एकाधिक स्पेस वाले नामों को नहीं पकड़ता। अधिक मजबूत समाधान के लिए REGEXP का उपयोग करें:
SELECT * FROM DemoTable WHERE Name NOT REGEXP '[[:space:]]';