Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में SUBSTRING_INDEX() से ईमेल एड्रेस से डोमेन नाम निकालें

MySQL में SUBSTRING_INDEX() और INSTR() से ईमेल का डोमेन भाग (@ के बाद, डॉट से पहले) प्राप्त करना

सिंटैक्स:

SELECT SUBSTRING_INDEX(SUBSTR(email, INSTR(email, '@') + 1), '.', 1) AS DomainName 
FROM yourTableName;

चरण-दर-चरण विश्लेषण:

  1. INSTR(email, '@') → '@' की स्थिति खोजें
  2. + 1 → '@' के बाद का भाग शुरू करें
  3. SUBSTR(email, pos) → '@' के बाद का सबस्ट्रिंग (डोमेन + TLD)
  4. SUBSTRING_INDEX(..., '.', 1) → पहले डॉट से पहले का भाग (डोमेन नाम)

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE selectDomainNameOnly (UserEmailAddress VARCHAR(200)); 
Query OK, 0 rows affected (0.52 sec)

2. ईमेल डालें:

mysql> INSERT INTO selectDomainNameOnly VALUES('John123@yahoo.com');
mysql> INSERT INTO selectDomainNameOnly VALUES('234Bob@gmail.com');
mysql> INSERT INTO selectDomainNameOnly VALUES('Carol23595@hotmail.com');

3. सभी रिकॉर्ड:

+------------------------+ 
| UserEmailAddress       | 
+------------------------+ 
| John123@yahoo.com      | 
| 234Bob@gmail.com       | 
| Carol23595@hotmail.com | 
+------------------------+ 
3 rows in set (0.00 sec)

4. डोमेन नाम निकालें:

mysql> SELECT SUBSTRING_INDEX(SUBSTR(UserEmailAddress, INSTR(UserEmailAddress, '@') + 1), '.', 1) AS DomainName 
    -> FROM selectDomainNameOnly;
+------------+ 
| DomainName | 
+------------+ 
| yahoo      | 
| gmail      | 
| hotmail    | 
+------------+ 
3 rows in set (0.06 sec)

सरल विकल्प (MySQL 8.0+):

-- SUBSTRING_INDEX का दोहरा उपयोग
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', -1), '.', 1) AS domain FROM table;

पूरा डोमेन (TLD सहित):

SELECT SUBSTRING_INDEX(email, '@', -1) AS full_domain FROM table;
yahoo.com
gmail.com
hotmail.com

उन्नत: उप-डोमेन संभालना (mail.google.com → google):

SELECT 
    SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', -1), '.', -2) AS main_domain
FROM table;

संबंधित स्ट्रिंग फंक्शन:

फंक्शनउपयोग
SUBSTRING_INDEX(str, delim, count)डेलिमीटर के count-वें घटना से पहले/बाद का भाग
INSTR(str, substr)सबस्ट्रिंग की पहली स्थिति (1-आधारित)
LOCATE(substr, str)INSTR जैसा लेकिन पैरामीटर क्रम अलग
SUBSTR(str, pos, len)स्थिति से लंबाई तक सबस्ट्रिंग
  1. - MySQL में स्पेस वाले कॉलम नाम को कैसे सेलेक्ट करें?

    स्पेस वाले कॉलम नाम के लिए बैकटिक (` `) उपयोग करें। उदाहरण CREATE TABLE SpaceColumn (`Student Name` VARCHAR(100)); INSERT INTO SpaceColumn VALUES (John), (Bob); SELECT `Student Name` FROM SpaceColumn; +--------------+ | Student Name | +--------------+ | John | | Bob | +-----------

  1. - MySQL में रिकर्सिव SELECT क्वेरी कैसे करें

    रिकर्सिव सेलेक्ट के लिए, आइए एक उदाहरण देखते हैं। सबसे पहले, हम एक टेबल बनाएंगे। टेबल बनाने के लिए CREATE कमांड का उपयोग किया जाता है। ); Query OK, 0 rows affected (0.61 sec) अब, हम टेबल tblSelectDemo में रिकॉर्ड्स डालेंगे। insert into tblSelectDemo values(5,Bob); Query OK, 1 row affected (0.18

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर