স্ট্রিং হিসেবে সংরক্ষিত সংখ্যা সঠিক ক্রমে সাজানো
যদি সংখ্যা VARCHAR কলামে থাকে, তবে ORDER BY এ স্ট্রিং হিসেবে সাজাবে (যেমন: 1, 10, 100, 2, 20...). সংখ্যা হিসেবে সাজাতে +0 ব্যবহার করুন।
সিনট্যাক্স
SELECT yourColumnName FROM yourTableName ORDER BY yourColumnName + 0 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');
Case ১: DESC (বড় থেকে ছোট) - +0 ব্যবহার
mysql> SELECT RankNumber FROM selectOrderdemo ORDER BY RankNumber + 0 DESC;
+------------+
| RankNumber |
+------------+
| 98 |
| 50 |
| 0 |
| -100 |
| -110 |
+------------+
Case ২: ASC (ছোট থেকে বড়)
mysql> SELECT RankNumber FROM selectOrderdemo ORDER BY RankNumber + 0;
+------------+
| RankNumber |
+------------+
| -110 |
| -100 |
| 0 |
| 50 |
| 98 |
+------------+
Case ৩: সব কলামসহ
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 |
+----+-------+------------+
বিকল্প: CAST(RankNumber AS SIGNED) বা CONVERT(RankNumber, SIGNED)ও ব্যবহার করা যায়।