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

MySQL में एक से अधिक कॉलम को एक साथ कैसे सॉर्ट करें?


ORDER BY से बहु-कॉलम सॉर्टिंग

MySQL में एक से अधिक कॉलम के आधार पर डेटा सॉर्ट करने के लिए ORDER BY क्लॉज में कॉलम को कॉमा से अलग करके लिखें।

सिंटैक्स

SELECT yourColumnName1, yourColumnName2, yourColumnName3
FROM yourTableName
ORDER BY yourColumnName2, yourColumnName3;

उदाहरण: देश फिर नाम से सॉर्ट

टेबल बनाएं:

mysql> CREATE TABLE doubleSortDemo (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(100),
    -> StudentCountryName VARCHAR(10)
    -> );

डेटा इन्सर्ट करें:

mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('John', 'AUS');
mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('Sam', 'UK');
mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('Bob', 'US');
mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('Carol', 'UK');
mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('David', 'AUS');
mysql> INSERT INTO doubleSortDemo(StudentName, StudentCountryName) VALUES('Larry', 'UK');

सामान्य क्रम:

+-----------+-------------+--------------------+
| StudentId | StudentName | StudentCountryName |
+-----------+-------------+--------------------+
| 1         | John        | AUS                |
| 2         | Sam         | UK                 |
| 3         | Bob         | US                 |
| 4         | Carol       | UK                 |
| 5         | David       | AUS                |
| 6         | Larry       | UK                 |
+-----------+-------------+--------------------+

देश फिर नाम से सॉर्ट करने की क्वेरी

mysql> SELECT StudentId, StudentName, StudentCountryName
    -> FROM doubleSortDemo
    -> ORDER BY StudentCountryName, StudentName;

परिणाम:

+-----------+-------------+--------------------+
| StudentId | StudentName | StudentCountryName |
+-----------+-------------+--------------------+
| 5         | David       | AUS                |
| 1         | John        | AUS                |
| 4         | Carol       | UK                 |
| 6         | Larry       | UK                 |
| 2         | Sam         | UK                 |
| 3         | Bob         | US                 |
+-----------+-------------+--------------------+

व्याख्या:

  1. पहले StudentCountryName से सॉर्ट होता है (AUS, UK, US)
  2. फिर प्रत्येक देश के भीतर StudentName से सॉर्ट होता है (वर्णानुक्रम)
  3. ASC/DESC प्रत्येक कॉलम के लिए अलग-अलग दे सकते हैं: ORDER BY col1 ASC, col2 DESC
  4. प्रदर्शन टिप: सॉर्ट कॉलम पर इंडेक्स होने से क्वेरी तेज़ होती है।

  1. - MySQL में अलग-अलग लंबाई के अल्फ़ान्यूमेरिक कॉलम को कैसे सॉर्ट करें

    SUBSTRING_INDEX और संख्यात्मक कास्टिंग के साथ अल्फ़ान्यूमेरिक सॉर्टिंग पहले टेबल बनाएं: create table DemoTable1623 ( StudentCode varchar(20) ); Query OK, 0 rows affected (0.47 sec) रिकॉर्ड डालें: insert into DemoTable1623 values(STU-MIT-148); Query OK, 1 row affected (0.22 sec) सभी रिकॉर्ड देखें:

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

    MySQL में SUBSTRING_INDEX() और LOCATE() फ़ंक्शन का उपयोग करके डिलिमिटर (जैसे अंडरस्कोर) के आधार पर कॉलम को भागों में विभाजित किया जा सकता है। सिंटैक्स 0: बाएं से count भाग -- count < 0: दाएं से |count| भाग उदाहरण: पहला भाग प्राप्त करें (पहले _ से पहले) mysql> CREATE TABLE DemoTable (Name VARCH

  1. - MySQL में ADDTIME() से DATETIME कॉलम में समय जोड़ें

    MySQL का ADDTIME(datetime, time) फ़ंक्शन एक DATETIME/TIME मान में समय अंतराल जोड़ता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1848 (ShippingDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1848 VALUES(2019-10-11 12:30:45); mysql> INSERT INTO DemoTable1848 VALUES(2019-01-12 10:00:0