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

MySQL में VARCHAR संख्याओं को क्रमबद्ध करें जिनमें अग्रणी शून्य हैं

संख्यात्मक कन्वर्जन के साथ VARCHAR संख्याओं का सही क्रम

जब संख्याएं VARCHAR में संग्रहीत हों और कुछ में अग्रणी शून्य हों (जैसे '085', '090'), तो वर्णानुक्रम क्रम गलत होता है। संख्यात्मक मान में बदलकर क्रमबद्ध करें।

सिंटैक्स

SELECT * FROM yourTableName ORDER BY yourColumnName*1, yourColumnName;

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    Value VARCHAR(100)
);
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable VALUES('90');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('86');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES('45');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('85');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES('085');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('090');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('045');
Query OK, 1 row affected (0.10 sec)

सभी रिकॉर्ड (डिफ़ॉल्ट क्रम)

mysql> SELECT * FROM DemoTable;
+-------+
| Value |
+-------+
| 90    |
| 86    |
| 45    |
| 85    |
| 085   |
| 090   |
| 045   |
+-------+
7 rows in set (0.00 sec)

संख्यात्मक क्रम में क्रमबद्ध करना

mysql> SELECT * FROM DemoTable ORDER BY Value*1, Value;

परिणाम:

+-------+
| Value |
+-------+
| 045   |
| 45    |
| 085   |
| 85    |
| 86    |
| 090   |
| 90    |
+-------+
7 rows in set (0.00 sec)

तर्क: Value*1 स्ट्रिंग को संख्या में बदल देता है (अग्रणी शून्य अनदेखी)। समान संख्यात्मक मान के लिए (45 और 045), द्वितीयक क्रम Value (स्ट्रिंग क्रम) से होता है, इसलिए '045' पहले आता है।

बेहतर तरीका: ORDER BY CAST(Value AS UNSIGNED), Value अधिक स्पष्ट और पोर्टेबल है।

  1. - MySQL में रेगुलर एक्सप्रेशन से विशिष्ट पैटर्न वाले डेटाबेस नाम कैसे खोजें?

    MySQL में INFORMATION_SCHEMA.SCHEMATA से डेटाबेस नामों को रेगुलर एक्सप्रेशन (REGEXP) द्वारा फ़िल्टर करके खोजें। यह नामकरण परंपरा (जैसे prefix_UpperCase) आधारित खोज के लिए उपयोगी है। उदाहरण: bank_ के बाद अपरकेस अक्षर वाले डेटाबेस टेस्ट डेटाबेस बनाएं: mysql> CREATE DATABASE bank_APP1; mysql>

  1. - MySQL में VARCHAR स्ट्रिंग से हाइफ़न के बाद की संख्याओं को कैसे हटाएं

    समाधान SUBSTRING_INDEX() फंक्शन का उपयोग करके हाइफ़न से पहले का भाग प्राप्त करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2040 VALUES (John-232), (Carol-901), (David-987); अपडेट क्वेरी UPDATE DemoTable2040 SET StudentCode = SUBSTRING_INDEX(StudentCode, -, 1); परिणाम +-------------+ | StudentCod

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

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