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

MySQL में स्ट्रिंग में अंतिम सबस्ट्रिंग का सूचकांक कैसे खोजें?

CHAR_LENGTH() और REVERSE() के साथ LOCATE()

MySQL में किसी स्ट्रिंग में **अंतिम सबस्ट्रिंग (अंतिम डिलीमीटर) की स्थिति** खोजने के लिए स्ट्रिंग को उल्टा करें, डिलीमीटर खोजें, और लंबाई से घटाएं।

सिंटैक्स

SELECT CHAR_LENGTH(yourColumnName) - LOCATE('delimiter', REVERSE(yourColumnName)) + 1 
AS PositionOfLastSubstring 
FROM yourTableName;

तर्क

  1. REVERSE(str) - स्ट्रिंग उल्टा करें
  2. LOCATE(' ', REVERSE(str)) - उल्टी स्ट्रिंग में पहला स्पेस (मूल में अंतिम स्पेस) खोजें
  3. CHAR_LENGTH(str) - pos + 1 - मूल स्ट्रिंग में स्थिति की गणना करें

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

1. टेबल बनाएं

mysql> CREATE TABLE SubStringIndexDemo (
    -> Words VARCHAR(200)
    -> );
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO SubStringIndexDemo VALUES('This is MySQL Query');
mysql> INSERT INTO SubStringIndexDemo VALUES('MySQL is a Relational Database');
mysql> INSERT INTO SubStringIndexDemo VALUES('Java is a programming language');
mysql> INSERT INTO SubStringIndexDemo VALUES('Spring is a Framework');

2. डेटा देखें

mysql> SELECT * FROM SubStringIndexDemo;
+--------------------------------+
| Words                          |
+--------------------------------+
| This is MySQL Query            |
| MySQL is a Relational Database |
| Java is a programming language |
| Spring is a Framework          |
+--------------------------------+
4 rows in set (0.00 sec)

3. अंतिम सबस्ट्रिंग (अंतिम शब्द) की स्थिति

mysql> SELECT CHAR_LENGTH(Words) - LOCATE(' ', REVERSE(Words)) + 1 
    -> AS PositionOfLastSubstring 
    -> FROM SubStringIndexDemo;
+-------------------------+
| PositionOfLastSubstring |
+-------------------------+
| 14                      |  -- "Query" 14वें स्थान से शुरू
| 22                      |  -- "Database" 22वें स्थान से
| 22                      |  -- "language" 22वें स्थान से
| 12                      |  -- "Framework" 12वें स्थान से
+-------------------------+
4 rows in set (0.00 sec)

सत्यापन

-- "This is MySQL Query" लंबाई 19, अंतिम स्पेस स्थान 13, अगला 14 = "Query"
SELECT SUBSTRING('This is MySQL Query', 14); -- 'Query'

सामान्यीकृत फ़ंक्शन (MySQL 8.0+)

CREATE FUNCTION LastDelimiterPos(str TEXT, delim VARCHAR(10))
RETURNS INT
DETERMINISTIC
RETURN CHAR_LENGTH(str) - LOCATE(delim, REVERSE(str)) + 1;

वैकल्पिक: SUBSTRING_INDEX (अंतिम भाग प्राप्त करने के लिए)

SELECT SUBSTRING_INDEX(Words, ' ', -1) AS LastWord 
FROM SubStringIndexDemo;
+-----------+
| LastWord  |
+-----------+
| Query     |
| Database  |
| language  |
| Framework |
+-----------+

यह **स्थिति नहीं**, **मान** देता है। अक्सर यही चाहिए होता है।

चेतावनी

  • डिलीमीटर न मिलने पर LOCATE 0 लौटाता है → स्थिति = लंबाई + 1 (गलत)
  • सुरक्षित संस्करण: IF(LOCATE(...)>0, CHAR_LENGTH(...) - LOCATE(...) + 1, 1)
  • बहु-कैरेक्टर डिलीमीटर के लिए LOCATE काम करता है
  1. - MySQL में SUBSTRING_INDEX() से अंतिम डॉट (.) के बाद का सबस्ट्रिंग निकालें

    MySQL में किसी स्ट्रिंग में **अंतिम डॉट (.) के बाद का भाग** निकालने के लिए SUBSTRING_INDEX() फ़ंक्शन का उपयोग ऋणात्मक काउंट के साथ करें। यह फाइल एक्सटेंशन, डोमेन पार्सिंग, ईमेल डोमेन, और पथ प्रसंस्करण के लिए बहुत उपयोगी है। सिंटैक्स SUBSTRING_INDEX(string, ., -1) string - स्रोत स्ट्रिंग . - डिलीमी

  1. - MySQL क्वेरी: निश्चित अंतिम स्ट्रिंग वर्ण के आधार पर क्रमबद्ध करें

    परिचय जब कॉलम मानों में हाइफ़न (-) से अलग सफ़िक्स हों (जैसे John-D, John-Smith), और आप उन सफ़िक्स के आधार पर क्रमबद्ध करना चाहते हैं, तो MySQL के स्ट्रिंग फंक्शन्स और CASE स्टेटमेंट का उपयोग किया जा सकता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.54 sec) INSERT INTO Dem

  1. - जावा प्रोग्राम: दी गई स्ट्रिंग से कैरेक्टर प्राप्त करना

    इस लेख में, हम समझेंगे कि दी गई स्ट्रिंग से कैरेक्टर कैसे प्राप्त किया जाता है। Char एक डेटा टाइप है जिसमें एक अल्फाबेट, इंटीजर या स्पेशल कैरेक्टर होता है। स्ट्रिंग एक डेटा टाइप है जिसमें एक या अधिक कैरेक्टर होते हैं और यह डबल कोट्स ( ) में बंद होता है। उदाहरण मान लीजिए हमारा इनपुट है: Input strin