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

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

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

अक्षरांकीय वर्ण, वर्णानुक्रमिक वर्ण और संख्यात्मक वर्ण होते हैं।

नमूना डेटा

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

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 वर्ण वर्ग।

SELECT c1 FROM t1 
WHERE c1 REGEXP '^[[:alnum:]]+$';

परिणाम:

+-------+
| c1    |
+-------+
| Music |
| Café  |
| 007   |
| é     |
| É     |
| ø     |
+-------+

यह केवल उन पंक्तियों को लौटाता है जिनमें अल्फ़ान्यूमेरिक वर्णों के अलावा कुछ नहीं होता है। यदि किसी पंक्ति में अल्फ़ान्यूमेरिक और गैर-अल्फ़ान्यूमेरिक दोनों वर्ण हैं, तो उसे वापस नहीं किया जाता है।

ध्यान दें कि स्पेस कैरेक्टर को गैर-अल्फ़ान्यूमेरिक माना जाता है, और इसलिए यदि हम रिक्त स्थान शामिल करना चाहते हैं, तो हम यह कर सकते हैं:

SELECT c1 FROM t1 
WHERE c1 REGEXP '^[[:alnum:] ]+$';

परिणाम:

+---------------+
| c1            |
+---------------+
| Music         |
| Live Music    |
| Café          |
| Café Del Mar  |
| 100 Cafés     |
| Player 456    |
| 007           |
| é             |
| É             |
| é 123         |
| ø             |
| ø 123         |
+---------------+

उन सभी पंक्तियों को वापस करने के लिए जिनमें शामिल हैं अल्फ़ान्यूमेरिक वर्ण (भले ही पंक्ति में गैर-अल्फ़ान्यूमेरिक वर्ण भी हों), हम यह कर सकते हैं:

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

परिणाम:

+-------------------+
| c1                |
+-------------------+
| Music             |
| Live Music        |
| Café              |
| Café Del Mar      |
| 100 Cafés         |
| [email protected] |
| 1 + 1             |
| $1.50             |
| Player 456        |
| 007               |
| é                 |
| É                 |
| é 123             |
| ø                 |
| ø 123             |
+-------------------+

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

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

उदाहरण:

SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-z0-9]+$';

परिणाम:

+-------+
| c1    |
+-------+
| Music |
| 007   |
+-------+

आप देखेंगे कि यह हमारे पहले उदाहरण की तुलना में कम पंक्तियाँ लौटाता है। ऐसा इसलिए है क्योंकि मैंने é . को शामिल नहीं किया था , É , या ø मेरी सीमा में वर्ण, और इसलिए उन वर्णों वाली किसी भी पंक्ति को आउटपुट से बाहर रखा गया है।

इसलिए, यदि आप गलती से उन वर्णों को बाहर कर देते हैं जिन्हें आपको शामिल करना चाहिए, तो इस पद्धति का उपयोग करते समय आपको सावधान रहने की आवश्यकता होगी।

हालांकि, इस सीमा को ध्यान में रखते हुए, हम इस तरह के रिक्त स्थान शामिल कर सकते हैं:

SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-z0-9 ]+$';

परिणाम:

+------------+
| c1         |
+------------+
| Music      |
| Live Music |
| Player 456 |
| 007        |
+------------+

और हम निम्नलिखित का उपयोग उन सभी पंक्तियों को शामिल करने के लिए कर सकते हैं जिनमें शामिल हैं हमारी श्रेणी के वर्ण (भले ही उनमें इस श्रेणी के बाहर के वर्ण भी हों):

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

परिणाम:

+-------------------+
| c1                |
+-------------------+
| Music             |
| Live Music        |
| Café              |
| Café Del Mar      |
| 100 Cafés         |
| [email protected] |
| 1 + 1             |
| $1.50             |
| Player 456        |
| 007               |
| é 123             |
| ø 123             |
+-------------------+

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

  2. मारियाडीबी में PERIOD_ADD () कैसे काम करता है

  3. MySQL/MariaDB/Percona सर्वर के लिए अपग्रेड प्रक्रिया का स्वचालित परीक्षण

  4. कैसे सही () मारियाडीबी में काम करता है

  5. प्रोएक्टिव MySQL मॉनिटरिंग (डेवलपर स्टूडियो/सलाहकार कोण)