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

MySQL में SUBSTRING_INDEX() का उपयोग करके कॉलम कैसे विभाजित करें?

MySQL में SUBSTRING_INDEX() और LOCATE() फ़ंक्शन का उपयोग करके डिलिमिटर (जैसे अंडरस्कोर) के आधार पर कॉलम को भागों में विभाजित किया जा सकता है।

सिंटैक्स

SUBSTRING_INDEX(str, delim, count)
-- count > 0: बाएं से count भाग
-- count < 0: दाएं से |count| भाग

उदाहरण: पहला भाग प्राप्त करें (पहले '_' से पहले)

mysql> CREATE TABLE DemoTable (Name VARCHAR(40));
mysql> INSERT INTO DemoTable VALUES ('John_Smith'), ('Carol_Taylor'), ('David_Miller');

डेटा

+--------------+
| Name         |
+--------------+
| John_Smith   |
| Carol_Taylor |
| David_Miller |
+--------------+

क्वेरी

mysql> SELECT IF(LOCATE('_', Name) = 0, '', SUBSTRING_INDEX(Name, '_', 1))
    -> FROM DemoTable;

परिणाम

+---------------------------------------------------------+
| John                                                    |
| Carol                                                   |
| David                                                   |
+---------------------------------------------------------+

व्याख्या

  • LOCATE('_', Name) - '_' की स्थिति खोजता है (0 = नहीं मिला)
  • IF(LOCATE(...) = 0, '', ...) - डिलिमिटर न होने पर खाली स्ट्रिंग
  • SUBSTRING_INDEX(Name, '_', 1) - पहले '_' से पहले का भाग

दोनों भाग प्राप्त करें

SELECT 
    SUBSTRING_INDEX(Name, '_', 1) AS FirstPart,
    SUBSTRING_INDEX(Name, '_', -1) AS LastPart
FROM DemoTable;

परिणाम

+-----------+----------+
| FirstPart | LastPart |
+-----------+----------+
| John      | Smith    |
| Carol     | Taylor   |
| David     | Miller   |
+-----------+----------+

एकाधिक डिलिमिटर (MySQL 8.0+)

-- JSON_TABLE या रिकर्सिव CTE का उपयोग करें
-- या एप्लिकेशन लेयर पर विभाजित करें

बेहतर डिज़ाइन

अलग कॉलम में संग्रहीत करें: FirstName, LastName। विभाजन क्वेरी समय पर महंगा और त्रुटि-प्रवण है।

  1. MySQL में विशिष्ट कॉलम डेटा कैसे निर्यात करें? MySQL में विशिष्ट कॉलम डेटा कैसे निर्यात करें?

    MySQL में SELECT ... INTO OUTFILE का उपयोग करके आप किसी क्वेरी के परिणाम को सर्वर पर एक फ़ाइल में निर्यात कर सकते हैं। यह डेटा निर्यात, बैकअप, या अन्य सिस्टम के साथ एकीकरण के लिए उपयोगी है। सिंटैक्स SELECT yourColumnName FROM yourTableName INTO OUTFILE file_path; उदाहरण तालिका बनाना और डेटा डालना

  1. - MySQL में NVARCHAR कॉलम कैसे बनाएं

    MySQL में NVARCHAR का व्यवहार MySQL में NVARCHAR() को स्वचालित रूप से VARCHAR() में बदल दिया जाता है। NVARCHAR का अर्थ National Varchar होता है, लेकिन MySQL इसे VARCHAR के रूप में ही ट्रीट करता है। आइए एक टेबल बनाते हैं जिसमें एक कॉलम NVARCHAR हो: mysql> CREATE TABLE DemoTable ( StudentName N

  1. - MySQL सीक्वेंस कैसे बनाएं?

    MySQL में सीक्वेंस क्या है? MySQL में, एक सीक्वेंस इंटीजर्स की एक सूची को संदर्भित करता है जो आरोही क्रम में 1 से शुरू होकर या 0 से यदि निर्दिष्ट किया गया हो, उत्पन्न होती है। कई एप्लिकेशन को सीक्वेंस की आवश्यकता होती है जिनका उपयोग विशेष रूप से पहचान के लिए अद्वितीय संख्या उत्पन्न करने के लिए किया