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

MySQL में स्ट्रिंग नंबर को सही तरीके से कैसे सॉर्ट करें?


VARCHAR कॉलम में संग्रहीत संख्याओं को संख्यात्मक क्रम में सॉर्ट करने के लिए CAST() फंक्शन का उपयोग करें।

सिंटैक्स

SELECT * FROM yourTableName ORDER BY CAST(yourColumnName AS DECIMAL(10,2)) DESC;

उदाहरण

टेबल बनाना

mysql> create table SortingStringDemo (
-> Amount varchar(10)
-> ); Query OK, 0 rows affected (0.91 sec)

स्ट्रिंग के रूप में संख्याएं डालना

mysql> insert into SortingStringDemo values('12.34');
mysql> insert into SortingStringDemo values('124.50');
mysql> insert into SortingStringDemo values('9.59');
mysql> insert into SortingStringDemo values('150.68');
mysql> insert into SortingStringDemo values('600.54');

बिना CAST के सॉर्ट (गलत - वर्णानुक्रम)

mysql> select *from SortingStringDemo order by Amount desc;
+--------+
| Amount |
+--------+
| 9.59   |
| 600.54 |
| 150.68 |
| 124.50 |
| 12.34  |
+--------+

CAST के साथ सॉर्ट (सही - संख्यात्मक)

mysql> select *from SortingStringDemo order by cast(Amount as Decimal(6,2)) desc;
+--------+
| Amount |
+--------+
| 600.54 |
| 150.68 |
| 124.50 |
| 12.34  |
| 9.59   |
+--------+

CAST पैरामीटर समझना

  • DECIMAL(6,2) — कुल 6 अंक, 2 दशमलव स्थान
  • अपने डेटा के अनुसार आकार समायोजित करें: DECIMAL(10,2), DECIMAL(15,4) आदि
  • पूर्णांक के लिए: CAST(col AS UNSIGNED) या CAST(col AS SIGNED)

अन्य उपयोगी तरीके

-- 0 जोड़कर इम्प्लिसिट कन्वर्जन
SELECT * FROM SortingStringDemo ORDER BY Amount+0 DESC;

-- CAST के बजाय CONVERT
SELECT * FROM SortingStringDemo ORDER BY CONVERT(Amount, DECIMAL(10,2)) DESC;

  1. - MySQL में IF स्टेटमेंट के परिणाम के रूप में स्ट्रिंग कैसे लौटाएं

    IF() फंक्शन के साथ कंडीशनल स्ट्रिंग परिणाम MySQL में IF() फंक्शन का उपयोग करके शर्त के आधार पर अलग-अलग स्ट्रिंग मान लौटाएं। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeSalary INT ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSER

  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)

  1. - MySQL क्वेरी: निश्चित अंतिम स्ट्रिंग वर्ण के आधार पर क्रमबद्ध करें

    परिचय जब कॉलम मानों में हाइफ़न (-) से अलग सफ़िक्स हों (जैसे John-D, John-Smith), और आप उन सफ़िक्स के आधार पर क्रमबद्ध करना चाहते हैं, तो MySQL के स्ट्रिंग फंक्शन्स और CASE स्टेटमेंट का उपयोग किया जा सकता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.54 sec) INSERT INTO Dem