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

MySQL ORDER BY स्ट्रिंग की तरह काम करे तो संख्या के रूप में सॉर्ट कैसे करें

VARCHAR कॉलम को संख्या के रूप में सॉर्ट करना

संख्यात्मक डेटा VARCHAR कॉलम में स्टोर होने पर ORDER BY स्ट्रिंग सॉर्ट करता है (1, 10, 100, 2, 20...।)। संख्यात्मक सॉर्ट के लिए + 0 या CAST() उपयोग करें।

समस्या: स्ट्रिंग सॉर्ट

+------------+
| RankNumber |
+------------+
| -100       |
| -110       |
| 0          |
| 50         |
| 98         |
+------------+

स्ट्रिंग सॉर्ट: -100, -110, 0, 50, 98 (गलत क्रम)

समाधान 1: + 0 ट्रिक

SELECT RankNumber FROM selectOrderdemo ORDER BY RankNumber + 0 DESC;
+------------+
| RankNumber |
+------------+
| 98         |
| 50         |
| 0          |
| -100       |
| -110       |
+------------+

समाधान 2: CAST()

SELECT RankNumber FROM selectOrderdemo ORDER BY CAST(RankNumber AS SIGNED) DESC;

समाधान 3: UNSIGNED

SELECT RankNumber FROM selectOrderdemo ORDER BY CAST(RankNumber AS UNSIGNED) DESC;

उदाहरण: टेबल और डेटा

mysql> CREATE TABLE selectOrderdemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(100),
    -> RankNumber VARCHAR(100)
    -> );
mysql> INSERT INTO selectOrderdemo(Name, RankNumber) VALUES
('Larry', '-100'), ('John', '50'), ('Bob', '0'), ('Carol', '-110'), ('David', '98');

सभी कॉलम के साथ संख्यात्मक सॉर्ट

mysql> SELECT * FROM selectOrderdemo ORDER BY RankNumber + 0 DESC;
+----+-------+------------+
| Id | Name  | RankNumber |
+----+-------+------------+
| 5  | David | 98         |
| 2  | John  | 50         |
| 3  | Bob   | 0          |
| 1  | Larry | -100       |
| 4  | Carol | -110       |
+----+-------+------------+

तुलना

  1. - MySQL में विशेष वर्णों वाले विशिष्ट स्ट्रिंग का चयन कैसे करें?

    MySQL में विशेष वर्णों वाले स्ट्रिंग चुनना: REPLACE और LIKE जब स्ट्रिंग में एपोस्ट्रोफी () जैसे विशेष वर्ण हों, तो उन्हें खोजने के लिए REPLACE() फंक्शन का उपयोग करके विशेष वर्णों को हटाकर तुलना कर सकते हैं। उदाहरण: MySQLs जैसे स्ट्रिंग खोजें टेबल बनाएं: CREATE TABLE DemoTable (Title TEXT); INSERT I

  1. - MySQL में शर्त के साथ ORDER BY और SELECT कैसे करें?

    कंडीशनल ORDER BY: जीरो वैल्यू अंत में किसी कॉलम को सॉर्ट करते समय खास मान (जैसे 0) को अंत में रखने और बाकी को नॉर्मल ऑर्डर में रखने के लिए बूलियन एक्सप्रेशन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName ORDER BY yourColumnName = 0, yourColumnName; टेबल बनाना और डेटा इन्सर्ट करना CREATE TABL

  1. - MySQL क्वेरी: स्ट्रिंग लंबाई के आधार पर तारे (*) जोड़ना

    RPAD() फंक्शन का उपयोग करके स्ट्रिंग लंबाई के अनुसार तारे जोड़ना इसके लिए RPAD() फंक्शन का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1626 ( Name varchar(20) ); Query OK, 0 rows affected (0.37 sec) रिकॉर्ड डालें: insert into DemoTable1626 values(Robert); Query OK, 1 row affected (0.13 sec)

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
विधिपोर्टेबिलिटीप्रदर्शननोट
col + 0MySQL-विशिष्टतेज़इम्प्लिसिट कास्ट
CAST(col AS SIGNED)ANSI SQLअच्छास्पष्ट, नेगेटिव सपोर्ट
CAST(col AS UNSIGNED)ANSI SQLअच्छाकेवल पॉजिटिव