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

MySQL में SUBSTR() और UNION ALL से अलग-अलग लंबाई के सबस्ट्रिंग जोड़ना

UNION ALL के साथ बहु-लंबाई सबस्ट्रिंग

एक ही कॉलम से अलग-अलग लंबाई के सबस्ट्रिंग निकालकर UNION ALL से परिणाम संयोजित करें। UNION ALL डुप्लिकेट नहीं हटाता (तेज़)।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable856(Title TEXT);
Query OK, 0 rows affected (0.89 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable856 VALUES
    ('Introduction to MySQL'),('Java in depth'),('C++ with Data Structure');
Query OK, 3 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable856;
+-------------------------+
| Title                   |
+-------------------------+
| Introduction to MySQL   |
| Java in depth           |
| C++ with Data Structure |
+-------------------------+
3 rows in set (0.00 sec)

दो अलग लंबाई के सबस्ट्रिंग जोड़ने की क्वेरी

mysql> SELECT SUBSTR(Title, 1, 12) FROM DemoTable856
    UNION ALL
    SELECT SUBSTR(Title, 1, 4) FROM DemoTable856;

परिणाम

+--------------------+
| SUBSTR(Title,1,12) |
+--------------------+
| Introduction       |
| Java in dept       |
| C++ with Dat       |
| Intr               |
| Java               |
| C++                |
+--------------------+
6 rows in set (0.03 sec)

क्वेरी व्याख्या

  • पहला SELECT: प्रत्येक टाइटल के पहले 12 वर्ण
  • दूसरा SELECT: प्रत्येक टाइटल के पहले 4 वर्ण
  • UNION ALL: दोनों परिणाम सेट जोड़ता है (कुल 3 + 3 = 6 पंक्तियां)
  • कॉलम नाम पहले SELECT से लिया जाता है

SUBSTR() vs SUBSTRING()

दोनों समान हैं। SUBSTR(str, pos, len) या SUBSTRING(str FROM pos FOR len) (मानक SQL)।

लेबल कॉलम जोड़ना (पहचान के लिए)

SELECT 'First 12' AS Type, SUBSTR(Title, 1, 12) AS Substring FROM DemoTable856
UNION ALL
SELECT 'First 4' AS Type, SUBSTR(Title, 1, 4) AS Substring FROM DemoTable856;

परिणाम

+-----------+--------------+
| Type      | Substring    |
+-----------+--------------+
| First 12  | Introduction |
| First 12  | Java in dept |
| First 12  | C++ with Dat |
| First 4   | Intr         |
| First 4   | Java         |
| First 4   | C++          |
+-----------+--------------+

UNION vs UNION ALL

पहलूUNIONUNION ALL
डुप्लिकेटहटाता हैरखता है
गतिधीमी (सॉर्ट/यूनिक)तेज़
उपयोगअद्वितीय परिणाम चाहिएसभी पंक्तियां चाहिए (सामान्य)

एक क्वेरी में एकाधिक लंबाई (क्रॉस जॉइन ट्रिक)

SELECT SUBSTR(Title, 1, lengths.len) AS Substring
FROM DemoTable856
CROSS JOIN (SELECT 12 AS len UNION ALL SELECT 4) AS lengths
ORDER BY lengths.len, Title;

डायनामिक लंबाई (नंबर्स टेबल से)

SELECT SUBSTR(Title, 1, n) AS Substring
FROM DemoTable856
JOIN (SELECT 4 AS n UNION ALL SELECT 8 UNION ALL SELECT 12) lens ON 1=1
ORDER BY n, Title;

उपयोग के मामले

  • सर्च सजेशन/ऑटोकंप्लीट के लिए प्रीफिक्स जनरेट करना
  • टेक्स्ट एनालिसिस में N-ग्राम निकालना
  • विभिन्न लंबाई के प्रीव्यू/स्निपेट बनाना
  • फजी मिलान के लिए वेरिएंट जनरेट करना
  1. - MySQL में DATE_ADD से 45 दिन जोड़कर नए कॉलम में कैसे प्रदर्शित करें?

    MySQL में DATE/DATETIME कॉलम में दिन जोड़ने और परिणाम को नए कॉलम में प्रदर्शित करने के लिए DATE_ADD() फंक्शन (या + INTERVAL सिंटैक्स) का उपयोग करें। यह देय तारीख, समाप्ति तारीख, शेड्यूलिंग गणना के लिए आवश्यक है। उदाहरण: DueTime में 45 दिन जोड़ना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable19

  1. - MySQL में SUM और FORMAT संयोजित करके परिणाम फॉर्मेट कैसे करें?

    MySQL में संख्यात्मक कॉलम का योग निकालकर उसे फॉर्मेटेड स्ट्रिंग (दशमलव स्थान, हजार सेपरेटर) के रूप में प्रदर्शित करने के लिए, SUM() के चारों ओर FORMAT() फंक्शन लपेटें। यह वित्तीय रिपोर्ट, इनवॉइस, और डैशबोर्ड के लिए आदर्श है। उदाहरण: Amount कॉलम का योग और फॉर्मेट डेमो टेबल बनाएं: mysql> CREATE

  1. - MySQL में GROUP_CONCAT और SUM का उपयोग करके कई पंक्तियों के स्ट्रिंग्स को संयोजित करें और ID का योग दिखाएं

    MySQL में GROUP_CONCAT और SUM के साथ पंक्तियों को एक पंक्ति में संयोजित करना MySQL का GROUP_CONCAT() फ़ंक्शन एक समूह के भीतर गैर-NULL मानों को एक स्ट्रिंग में जोड़ता है, और SUM() संख्यात्मक मानों को जोड़ता है। साथ में वे कई पंक्तियों को एक सारांश पंक्ति में संक्षिप्त करने की अनुमति देते हैं। टेबल ब