MySQL में किसी स्ट्रिंग में **अंतिम डॉट (.) के बाद का भाग** निकालने के लिए SUBSTRING_INDEX() फ़ंक्शन का उपयोग ऋणात्मक काउंट के साथ करें। यह फाइल एक्सटेंशन, डोमेन पार्सिंग, ईमेल डोमेन, और पथ प्रसंस्करण के लिए बहुत उपयोगी है।
सिंटैक्स
SUBSTRING_INDEX(string, '.', -1)
string- स्रोत स्ट्रिंग'.'- डिलीमीटर (डॉट)-1- **अंतिम** डिलीमीटर के **दाएं** का भाग लौटाएं
व्यावहारिक उदाहरण
टेबल बनाएं:
mysql> CREATE TABLE DemoTable1341 (Value VARCHAR(60));
mysql> INSERT INTO DemoTable1341 VALUES('John.123.@gmail.com');
mysql> INSERT INTO DemoTable1341 VALUES('Carol.Taylor.gmail');
mysql> INSERT INTO DemoTable1341 VALUES('C.MyFolder.Location');
डेटा देखें:
mysql> SELECT * FROM DemoTable1341;
+---------------------+ | Value | +---------------------+ | John.123.@gmail.com | | Carol.Taylor.gmail | | C.MyFolder.Location | +---------------------+
अंतिम डॉट के बाद का भाग निकालें
mysql> SELECT SUBSTRING_INDEX(Value, '.', -1) FROM DemoTable1341;
परिणाम
+---------------------------------+ | SUBSTRING_INDEX(Value, '.', -1) | +---------------------------------+ | com | | gmail | | Location | +---------------------------------+
व्याख्या
| मूल स्ट्रिंग | डॉट स्थिति | अंतिम डॉट के बाद |
|---|---|---|
| John.123.@gmail.com | 3 डॉट | com |
| Carol.Taylor.gmail | 2 डॉट | gmail |
| C.MyFolder.Location | 2 डॉट | Location |
| Count | व्यवहार | उदाहरण: 'a.b.c.d' |
|---|---|---|
| 1 | पहले डॉट से पहले | 'a' |
| 2 | दूसरे डॉट से पहले | 'a.b' |
| -1 | अंतिम डॉट के बाद | 'd' |
| -2 | अंतिम से पहले डॉट के बाद | 'c.d' |
व्यावहारिक उपयोग केस
ईमेल से डोमेन निकालें
SELECT SUBSTRING_INDEX(email, '@', -1) AS domain FROM users;
फाइल नाम से एक्सटेंशन निकालें
SELECT SUBSTRING_INDEX(filename, '.', -1) AS extension FROM files;
URL से अंतिम पथ खंड
SELECT SUBSTRING_INDEX(url, '/', -1) AS last_segment FROM urls;
पहला भाग प्राप्त करें (पहले डॉट से पहले)
SELECT SUBSTRING_INDEX(Value, '.', 1) FROM DemoTable1341;
+-------------------------------+ | SUBSTRING_INDEX(Value, '.', 1) | +-------------------------------+ | John | | Carol | | C | +-------------------------------+
सावधानी
- यदि डिलीमीटर नहीं मिलता, तो **पूरी स्ट्रिंग** लौटाई जाती है
NULLइनपुट →NULLआउटपुट- केस-सेंसिटिव:
'.'बनाम'.'(समान), लेकिन'A'बनाम'a'अलग
विकल्प: REGEXP_SUBSTR (MySQL 8.0+)
SELECT REGEXP_SUBSTR(Value, '[^.]+$') FROM DemoTable1341;
नियमित अभिव्यक्ति: [^.]+$ = डॉट के अलावा वर्ण, अंत तक।
SUBSTRING_INDEX() सरल, तेज़, और सभी MySQL संस्करणों में उपलब्ध है - डिलीमीटर-आधारित पार्सिंग के लिए पसंदीदा विकल्प।
-
MySQL में DATE_SUB और BETWEEN से अंतिम N दिन पहले के रिकॉर्ड ढूंढें
MySQL में DATE_SUB() और BETWEEN का उपयोग करके किसी दिनांक कॉलम में अंतिम N दिनों के रिकॉर्ड क्वेरी कर सकते हैं। उदाहरण: पिछले 3 दिन पहले के पोस्ट (आधार दिनांक: 2019-10-20) 1. टेबल बनाएं CREATE TABLE DemoTable1582 (PostedDate DATETIME); 2. डेटा डालें INSERT INTO DemoTable1582 VALUES(2019-10-25 0
-
MySQL टेबल में विशिष्ट तारीख की घटनाओं की गिनती कैसे करें?
MySQL में किसी DATE कॉलम में विशिष्ट तारीख की घटनाओं (occurrences) को गिनने के लिए, COUNT(*) के साथ WHERE date(column) = target_date का उपयोग करें। यह सरल, कुशल, और इंडेक्स-अनुकूल है। उदाहरण: 2019-12-11 तारीख की गिनती डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1946 (ShippingDate DATE); डेट
-
MySQL में टेबल A की तुलना में टेबल B में नहीं होने पर टेबल C में डेटा डालें
समाधान टेबल A और B पर LEFT JOIN का उपयोग करें, जहां B में मेल नहीं खाता वहां के रिकॉर्ड टेबल C में डालें। उदाहरण टेबल A (demo20): INSERT INTO demo20 VALUES (100,John), (101,Bob), (102,Mike), (103,Carol); टेबल B (demo21): INSERT INTO demo21 VALUES (100,Sam), (101,Adam), (133,Bob), (145,David); ट