এটি CAST() ফাংশন ব্যবহার করে করা যাবে। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Score INT
);
কিছু রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable(Score) VALUES(10); mysql> INSERT INTO DemoTable(Score) VALUES(100); mysql> INSERT INTO DemoTable(Score) VALUES(11); mysql> INSERT INTO DemoTable(Score) VALUES(97); mysql> INSERT INTO DemoTable(Score) VALUES(78); mysql> INSERT INTO DemoTable(Score) VALUES(89);
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+-------+ | Id | Score | +----+-------+ | 1 | 10 | | 2 | 100 | | 3 | 11 | | 4 | 97 | | 5 | 78 | | 6 | 89 | +----+-------+
সংখ্যা কলামে ASC ক্রম সেট করার কোয়েরি:
mysql> SELECT * FROM DemoTable ORDER BY CAST(Score AS SIGNED INTEGER) ASC;
আউটপুট:
+----+-------+ | Id | Score | +----+-------+ | 1 | 10 | | 3 | 11 | | 5 | 78 | | 6 | 89 | | 4 | 97 | | 2 | 100 | +----+-------+
নোট: যদি Score কলামটি ইতিমধ্যে INTEGER টাইপের হয়, তবে CAST() ব্যবহার না করেও ORDER BY Score ASC লিখলেই কাজ করবে। CAST() तब কাজে লাগে যখন ডেটা VARCHAR বা TEXT হিসেবে সংরক্ষিত থাকে কিন্তু সেটিকে সংখ্যা হিসেবে সাজাতে হয়।