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

MySQL में संख्या वाले स्ट्रिंग को कैसे ऑर्डर करें?


MySQL में संख्या वाले स्ट्रिंग (जैसे A10, A2, A30) को सही क्रम में ऑर्डर करने के लिए SUBSTR() और CAST() का उपयोग करें।

सिंटैक्स

SELECT * FROM yourTableName 
ORDER BY SUBSTR(yourColumnName FROM 1 FOR 2), 
         CAST(SUBSTR(yourColumnName FROM 2) AS UNSIGNED);

उदाहरण के साथ समझें

सबसे पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE OrderByStringWithNumbers (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Words VARCHAR(10),
    -> PRIMARY KEY(Id)
    -> ); 
Query OK, 0 rows affected (0.86 sec)

रिकॉर्ड डालें

mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A10'); 
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A30'); 
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A12'); 
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A11'); 
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A28'); 
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO OrderByStringWithNumbers(Words) VALUES('A21'); 
Query OK, 1 row affected (0.20 sec)

सभी रिकॉर्ड देखें (डिफ़ॉल्ट स्ट्रिंग सॉर्ट)

mysql> SELECT * FROM OrderByStringWithNumbers;

आउटपुट

+----+-------+
| Id | Words |
+----+-------+
| 1  | A10   |
| 2  | A30   |
| 3  | A12   |
| 4  | A11   |
| 5  | A28   |
| 6  | A21   |
+----+-------+
6 rows in set (0.00 sec)

डिफ़ॉल्ट स्ट्रिंग सॉर्ट में A10, A11, A12, A21, A28, A30 के बजाय A10, A12, A11... आता है (लेक्सिकोग्राफिक क्रम)।

सही संख्यात्मक क्रम में ऑर्डर करें

mysql> SELECT * FROM OrderByStringWithNumbers 
    -> ORDER BY SUBSTR(Words FROM 1 FOR 2), 
    -> CAST(SUBSTR(Words FROM 2) AS UNSIGNED);

आउटपुट

+----+-------+
| Id | Words |
+----+-------+
| 1  | A10   |
| 4  | A11   |
| 3  | A12   |
| 6  | A21   |
| 5  | A28   |
| 2  | A30   |
+----+-------+
6 rows in set (0.00 sec)

व्याख्या:

  • SUBSTR(Words FROM 1 FOR 2) - पहले 2 कैरेक्टर (प्रीफिक्स 'A') से सॉर्ट
  • CAST(SUBSTR(Words FROM 2) AS UNSIGNED) - दूसरे कैरेक्टर से अंत तक के भाग को अनसाइन्ड इंटीजर में कास्ट करके संख्यात्मक सॉर्ट

परिणाम: A10, A11, A12, A21, A28, A30 - सही संख्यात्मक क्रम।

  1. Java के साथ MySQL डेटाबेस से कनेक्ट करना Java के साथ MySQL डेटाबेस से कनेक्ट करना

    परिचय Java में JDBC (Java Database Connectivity) API का उपयोग करके MySQL डेटाबेस से कनेक्ट किया जाता है। इसके लिए MySQL JDBC ड्राइवर (Connector/J) की आवश्यकता होती है। कनेक्शन URL और पैरामीटर्स String MySQLURL = jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false; String databaseUserName = yo

  1. - MySQL में SELECT और SHOW कमांड के परिणामों को कैसे संयोजित करें

    समाधान उपयोगकर्ता-परिभाषित वेरिएबल (@) या सिस्टम वेरिएबल (@@) का उपयोग करके एक ही SELECT में कई मान दिखाएं। उपयोगकर्ता वेरिएबल SELECT @first_name AS EmployeeFirstName, @last_name AS EmployeeLastName; +-------------------+------------------+ | EmployeeFirstName | EmployeeLastName | +---------------

  1. - MySQL REGEXP: विशिष्ट संख्या से शुरू होने वाले स्ट्रिंग+नंबर रिकॉर्ड प्राप्त करें

    REGEXP पैटर्न Select yourColumnName1, yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue]; उदाहरण: John से शुरू और फिर 5 या 6 insert into demo45(value) values(John500), (John1500), (John5500), (John6500), (John8600); क्वेरी: ^John[56] select id,val