কম্পিউটার টিউটোরিয়াল

MySQL-এ VARCHAR কলাম থেকে MIN/MAX বের করে আলাদা কলামে দেখানো (CAST)


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 করুন।

  1. MySQL-এ একটি কলাম থেকে ডুপ্লিকেট রেকর্ডের গণনা করা এবং ফলাফল অর্ডার করা

  2. MySQL-এ ডুপ্লিকেট ID গুনুন এবং আলাদা কলামে ফলাফল দেখান

  3. MySQL-এ VARCHAR কলাম থেকে সর্বোচ্চ সংখ্যাগত মান বের করা

  4. MySQL-এ কলাম থেকে সর্বোচ্চ মান বের করা