CAST(... AS SIGNED) দিয়ে VARCHAR কে সংখ্যায় রূপান্তর করেই MIN/MAX
MySQL-এ 숫রIC মান VARCHAR-এ সংরক্ষিত থাকলে সরাসরি MIN()/MAX() দিলে লেক্সিকোগ্রাফিক্যাল (স্ট্রিং) কম্প্যারিজন হয় (যেমন '9' > '120')। CAST(... AS SIGNED) দিয়ে সংখ্যায় কনভার্ট করেই সঠিক ফলাফল পাওয়া যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (Value VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('190'), ('230'), ('120'), ('189');
সব রেকর্ড
+-------+ | Value | +-------+ | 190 | | 230 | | 120 | | 189 | +-------+
CAST + MIN/MAX কোয়েরি
mysql> SELECT
MIN(CAST(Value AS SIGNED)) AS Min,
MAX(CAST(Value AS SIGNED)) AS Max
FROM DemoTable;
+------+------+ | Min | Max | +------+------+ | 120 | 230 | +------+------+
ব্যাখ্যা
CAST(Value AS SIGNED)— VARCHAR কে সাইনড ইন্টেজারে কনভার্ট করে।UNSIGNEDব্যবহার করলে নেগেটিভ মান সাপোর্ট করবে না।MIN(),MAX()— এগريغেট ফাংশন সংখ্যাসূচক তুলনা করে।
স্ট্রিং কম্প্যারিজন (ভুল ফলাফল)
SELECT MIN(Value), MAX(Value) FROM DemoTable; -- Min: '120', Max: '230' (এখানে তফাত হলো '9' > '2' স্ট্রিং কম্প্যারিজনে)
সুতরাং আর্থিক/সংখ্যাসূচক অপারেশনের জন্য অবশ্যই CAST করুন।