नीचे उन पंक्तियों को वापस करने के दो विकल्प दिए गए हैं जिनमें PostgreSQL में केवल गैर-अल्फ़ान्यूमेरिक वर्ण हैं।
गैर-अल्फ़ान्यूमेरिक वर्णों में विराम चिह्न वर्ण शामिल हैं जैसे [email protected]#&()–[{}]:;',?/*
और प्रतीक जैसे `~$^+=<>“
, साथ ही रिक्त स्थान वर्ण जैसे स्पेस या टैब वर्ण।
नमूना डेटा
हम अपने उदाहरणों के लिए निम्नलिखित डेटा का उपयोग करेंगे:
SELECT c1 FROM t1;
परिणाम:
+----------------------+ | c1 | +----------------------+ | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | | Player 456 | | 007 | | NULL | | | | é | | É | | é 123 | | ø | | ø 123 | +----------------------+
विकल्प 1:[:alnum:]
से तुलना करें
हम PostgreSQL के !~
. का उपयोग कर सकते हैं ऑपरेटर हमारे कॉलम की तुलना रेगुलर एक्सप्रेशन से करने के लिए। हम इस ऑपरेटर का उपयोग तब करते हैं जब हम यह निर्दिष्ट करना चाहते हैं कि मान रेगुलर एक्सप्रेशन से मेल नहीं खाता।
MySQL की नियमित अभिव्यक्ति क्षमता में POSIX वर्ण वर्गों के लिए समर्थन शामिल है। इसलिए, हम [:alnum:]
. का उपयोग कर सकते हैं हमारे रेगुलर एक्सप्रेशन में POSIX वर्ण वर्ग।
SELECT c1 FROM t1
WHERE c1 !~ '[[:alnum:]]';
परिणाम:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“
खाली स्ट्रिंग भी संख्या-संख्यात्मक है, और इसलिए उस उदाहरण ने उस पंक्ति को वापस कर दिया जिसमें खाली स्ट्रिंग है।
हम NULLIF()
. का उपयोग करके खाली स्ट्रिंग्स को बाहर कर सकते हैं :
SELECT c1 FROM t1
WHERE NULLIF(c1, '') !~ '[[:alnum:]]';
परिणाम:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“
विकल्प 2:वर्णों की श्रेणी निर्दिष्ट करें
इसे करने का एक और तरीका है कि आप अपने रेगुलर एक्सप्रेशन में वर्णों की एक श्रेणी निर्दिष्ट करें।
उदाहरण:
SELECT c1 FROM t1
WHERE c1 !~ '[A-Za-z0-9]';
परिणाम:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“ é É ø
और खाली स्ट्रिंग को हटाने के लिए:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') !~ '[A-Za-z0-9]';
परिणाम:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“ é É ø
इस मामले में, मेरी बहिष्करण श्रेणी में é
. जैसे अक्षरांकीय वर्ण शामिल नहीं थे , É
, और ø
, और इसलिए आउटपुट गैर-अल्फ़ान्यूमेरिक वर्णों का सही प्रतिनिधित्व नहीं है। उस ने कहा, कम से कम यह विधि आपको उन सटीक वर्णों को निर्दिष्ट करने का विकल्प देती है जिन्हें आप शामिल करना चाहते हैं या परिणाम से बाहर करना चाहते हैं।