MySQL-এ VARCHAR টাইপের কলামে সংখ্যা স্ট্রিং হিসেবে সংরক্ষিত থাকলে, MAX() সরাসরি ব্যবহার করলে লেক্সিকোগ্রাফিক্যাল (শব্দক্রম) বেসিতে ফলাফল আসে (যেমন '9' > '10001')। এজন্য CAST() বা CONVERT() দিয়ে সংখ্যায় রূপান্তর করতে হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable2030 (
-> Value VARCHAR(20)
-> );
Query OK, 0 rows affected (0.44 sec)
mysql> INSERT INTO DemoTable2030 VALUES ('8'), ('1'), ('10001'), ('901');
mysql> SELECT * FROM DemoTable2030; +-------+ | Value | +-------+ | 8 | | 1 | | 10001 | | 901 | +-------+
সঠিক কোয়ারি
mysql> SELECT MAX(CAST(Value AS UNSIGNED)) FROM DemoTable2030;
ফলাফল
+------------------------------+ | max(cast(Value as unsigned)) | +------------------------------+ | 10001 | +------------------------------+
ব্যাখ্যা: CAST(Value AS UNSIGNED) স্ট্রিংকে অচ্ছেদাত্মক পূর্ণসংখ্যায় রূপান্তর করে। তারপর MAX() সঠিক সংখ্যাগত সর্বোচ্চ মান বের করে। SIGNED ব্যবহার করলে নেতিবাচক সংখ্যাও হ্যান্ডেল করা যায়।