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

MySQL-এ CAST() ব্যবহার করে VARCHAR কলাম থেকে নির্দিষ্ট সংখ্যার চেয়ে বড় মান বের করা

যদি সংখ্যা VARCHAR কলামে স্টোর করা থাকে, তবে সেটি সরাসরি সংখ্যা হিসেবে তুলনা করা যায় না (লেক্সিকোগ্রাফিক্যালি তুলনা হয়)। CAST() ব্যবহার করে সাইনড ইন্টিজারে কনভার্ট করে তুলনা করুন।

টেবিল তৈরি (VARCHAR কলাম)

mysql> CREATE TABLE DemoTable (Value VARCHAR(100));
Query OK, 0 rows affected (1.02 sec)

ডেটা ইনসার্ট

mysql> INSERT INTO DemoTable VALUES ('900');
Query OK, 1 row affected (0.49 sec)
mysql> INSERT INTO DemoTable VALUES ('1090');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES ('860');
Query OK, 1 row affected (0.25 sec)
mysql> INSERT INTO DemoTable VALUES ('12345');
Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO DemoTable VALUES ('908345');
Query OK, 1 row affected (0.16 sec)

রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট:

+--------+
| Value  |
+--------+
| 900    |
| 1090   |
| 860    |
| 12345  |
| 908345 |
+--------+
5 rows in set (0.00 sec)

CAST দিয়ে সাইনড ইন্টিজারে কনভার্ট করে সর্বোচ্চ মান বের করা

mysql> SELECT MAX(CAST(Value AS SIGNED)) FROM DemoTable;

ফলাফল:

+----------------------------+
| MAX(CAST(Value AS SIGNED)) |
+----------------------------+
| 908345                     |
+----------------------------+
1 row in set (0.05 sec)

ব্যাখ্যা

  • CAST(Value AS SIGNED) - VARCHAR কে SIGNED INTEGER-এ কনভার্ট করে।
  • UNSIGNED - শুধু ধনাত্মক সংখ্যা (০ থেকে ১৮৪৪৬৭৪৪০৭৩৭০৯৫৫১৬১৫)।
  • MAX() - কনভার্ট করা সংখ্যাগুলোর সর্বোচ্চ মান বের করে।

স্ট্রিং তুলনা সমস্যা

বिना CAST-এ '908345' < '99' হবে TRUE (লেক্সিকোগ্রাফিক্যালি '9' > '1')। CAST দিয়ে সংখ্যা তুলনা করলে সঠিক ফলাফল পাওয়া যায়।

WHERE ক্লজে ব্যবহার

SELECT * FROM DemoTable 
WHERE CAST(Value AS SIGNED) > 999;

এটি ১০৯০, ১২৩৪৫, ৯০৮৩৪৫ রিটার্ন করবে।

  1. MySQL에서 예약어 'from'을 컬럼명으로 쓰려면 백틱으로 감싸기

  2. MySQL-এ SELECT কোয়েরি থেকে নির্দিষ্ট কলামের রেকর্ড কীভাবে পেতে হয়?

  3. MySQL-এ REPLACE() ফাংশন দিয়ে কলামের নির্দিষ্ট ক্যারেক্টার পরিবর্তন করা

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