मारियाडीबी के साथ काम करते समय, आपको कभी-कभी खुद को उन सभी पंक्तियों को वापस करने की आवश्यकता हो सकती है जिनमें कोई संख्या नहीं होती है।
तकनीकी रूप से, संख्याओं को शब्दों और अन्य प्रतीकों द्वारा दर्शाया जा सकता है, लेकिन इस लेख के लिए "संख्या" का अर्थ केवल "संख्यात्मक अंक" है। इसलिए हम ऐसे मान ढूंढ रहे हैं जिनमें कोई संख्यात्मक अंक नहीं है।
उदाहरण
मान लीजिए हमारे पास Products
. नामक एक टेबल है निम्नलिखित डेटा के साथ इसके ProductName
. में कॉलम:
SELECT ProductName
FROM Products;
परिणाम:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
इस कॉलम में स्पष्ट रूप से वर्ण डेटा होता है, लेकिन कुछ पंक्तियों में उस वर्ण डेटा के भीतर संख्याएँ होती हैं (भले ही वे एक संख्यात्मक प्रकार के रूप में संग्रहीत न हों)।
हम निम्नलिखित क्वेरी का उपयोग केवल उन पंक्तियों को वापस करने के लिए कर सकते हैं जिनमें कोई संख्यात्मक अंक नहीं है:
SELECT ProductName
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';
परिणाम:
+--------------------------+ | ProductName | +--------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | +--------------------------+
जैसा कि अपेक्षित था, केवल वे पंक्तियाँ लौटाई जाती हैं जिनमें संख्याएँ नहीं होती हैं।
इस मामले में, हमने NOT REGEX
. का उपयोग किया है एक पैटर्न से मेल खाने वाली सभी पंक्तियों को खोजने के लिए कार्य करें। पैटर्न में 0
. से सभी संख्यात्मक अंक शामिल हैं करने के लिए 9
, साथ ही कोई अन्य वर्ण।
इसे इस तरह भी लिखा जा सकता है:
SELECT ProductName
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');
परिणाम:
+--------------------------+ | ProductName | +--------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | +--------------------------+
वही आउटपुट।