MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

पंक्तियों को वापस करने के 2 तरीके जिनमें केवल मारियाडीबी में गैर-अल्फ़ान्यूमेरिक वर्ण होते हैं

नीचे उन पंक्तियों को वापस करने की दो विधियाँ हैं जिनमें MariaDB में केवल गैर-अल्फ़ान्यूमेरिक वर्ण हैं।

गैर-अल्फ़ान्यूमेरिक वर्णों में विराम चिह्न वर्ण शामिल हैं जैसे [email protected]#&()–[{}]:;',?/* और प्रतीक जैसे `~$^+=<>“ , साथ ही रिक्त स्थान वर्ण जैसे स्पेस या टैब वर्ण।

नमूना डेटा

हम अपने उदाहरणों के लिए निम्नलिखित डेटा का उपयोग करेंगे:

CREATE TABLE t1 (
    c1 varchar(255) NULL
    );

INSERT INTO t1 VALUES
    ('Music'),
    ('Live Music'),
    ('Café'),
    ('Café Del Mar'),
    ('100 Cafés'),
    ('[email protected]'),
    ('1 + 1'),
    ('()'),
    ('[email protected]#&()–[{}]:;'',?/*'),
    ('`~$^+=<>“'),
    ('$1.50'),
    ('Player 456'),
    ('007'),
    (null),
    (''),
    ('é'),
    ('É'),
    ('é 123'),
    ('ø'),
    ('ø 123');
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:] से तुलना करें

MariaDB की नियमित अभिव्यक्ति क्षमता में POSIX वर्ण वर्गों के लिए समर्थन शामिल है। इसलिए, हम [:alnum:] . का उपयोग कर सकते हैं हमारे रेगुलर एक्सप्रेशन में POSIX वर्ण वर्ग केवल अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को खोजने के लिए, फिर NOT के साथ इसे नकारें ऑपरेटर।

SELECT c1 FROM t1 
WHERE c1 NOT REGEXP '[[:alnum:]]';

परिणाम:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
+----------------------+

यदि आपको किसी विशिष्ट वर्ण को बाहर करने की आवश्यकता है, तो आप हमेशा NULLIF() . का उपयोग कर सकते हैं समारोह।

उदाहरण के लिए, अंतिम पंक्ति से खाली स्ट्रिंग को हटा दें:

SELECT c1 FROM t1 
WHERE NULLIF(c1, '') NOT REGEXP '[[:alnum:]]';

परिणाम:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
+----------------------+

विकल्प 2:वर्णों की श्रेणी निर्दिष्ट करें

इसे करने का एक और तरीका है कि आप अपने रेगुलर एक्सप्रेशन में वर्णों की एक श्रेणी निर्दिष्ट करें।

उदाहरण:

SELECT c1 FROM t1 
WHERE c1 NOT REGEXP '[A-Za-z0-9]';

परिणाम:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
| é                    |
| É                    |
| ø                    |
+----------------------+

और खाली स्ट्रिंग को हटाने के लिए:

SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-z0-9]';

परिणाम:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
| é                    |
| É                    |
| ø                    |
+----------------------+

इस मामले में, मेरी बहिष्करण श्रेणी में é . जैसे अक्षरांकीय वर्ण शामिल नहीं थे , É , और ø , और इसलिए आउटपुट गैर-अल्फ़ान्यूमेरिक वर्णों का सही प्रतिनिधित्व नहीं है। उस ने कहा, कम से कम यह विधि आपको उन सटीक वर्णों को निर्दिष्ट करने का विकल्प देती है जिन्हें आप शामिल करना चाहते हैं या परिणाम से बाहर करना चाहते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में TIME_TO_SEC () कैसे काम करता है

  2. मारियाडीबी JSON_OBJECTAGG () समझाया गया

  3. अधिकतम डेटा सुरक्षा के लिए पूर्ण मारियाडीबी एन्क्रिप्शन एट-रेस्ट और इन-ट्रांजिट - भाग दो

  4. मारियाडीबी दिनांक प्रारूप स्ट्रिंग्स

  5. My DBA बीमार है - SysAdmins के लिए डेटाबेस फ़ेलओवर युक्तियाँ