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

MySQL-এ হাইফেন দিয়ে বিভক্ত স্ট্রিং থেকে MIN/MAX বের করা (SUBSTRING_INDEX)

MySQL-এ হাইফেন (-) দিয়ে বিভক্ত স্ট্রিং (যেমন '10-20') থেকে প্রথম এবং শেষ অংশ বের করে MIN() এবং MAX() খুঁজে বের করা যায়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Value VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.76 sec)
mysql> INSERT INTO DemoTable(Value) VALUES('10-20');
mysql> INSERT INTO DemoTable(Value) VALUES('200-100');
mysql> INSERT INTO DemoTable(Value) VALUES('780-235');

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

mysql> SELECT * FROM DemoTable;

আউটপুট

+----+---------+
| Id | Value   |
+----+---------+
| 1  | 10-20   |
| 2  | 200-100 |
| 3  | 780-235 |
+----+---------+
3 rows in set (0.00 sec)

হাইফেনের বামপাশ (প্রথম অংশ) এর MIN এবং ডানপাশ (শেষ অংশ) এর MAX

mysql> SELECT MIN(SUBSTRING_INDEX(Value, '-', 1)), 
    -> MAX(SUBSTRING_INDEX(Value, '-', -1)) 
    -> FROM DemoTable;

আউটপুট

+-------------------------------------+--------------------------------------+
| MIN(SUBSTRING_INDEX(Value, '-', 1)) | MAX(SUBSTRING_INDEX(Value, '-', -1)) |
+-------------------------------------+--------------------------------------+
| 10                                  | 235                                  |
+-------------------------------------+--------------------------------------+
1 row in set (0.04 sec)

ব্যাখ্যা:

  • SUBSTRING_INDEX(Value, '-', 1) — প্রথম হাইফেনের আগের অংশ (বামপাশ): ১০, ২০০, ৭৮০। MIN = ১০।
  • SUBSTRING_INDEX(Value, '-', -1) — শেষ হাইফেনের পরের অংশ (ডানপাশ): ২০, ১০০, ২৩৫। MAX = ২৩৫।

সতর্কতা: স্ট্রিং তুলনা হলে '১০০' < '২০' (লেক্সিকোগ্রাফিক্যালি)। সঠিক সংখ্যাগত তুলনার জন্য CAST(... AS UNSIGNED) ব্যবহার করুন: MIN(CAST(SUBSTRING_INDEX(Value, '-', 1) AS UNSIGNED))।

  1. MySQL-এ দুটি টেবিলের সর্বোচ্চ মানের মধ্যস্থ ন্যূনতম মান বের করা (UNION)

  2. MySQL-এ VARCHAR কলামে স্ট্রিং ও সংখ্যা মিশ্রিত ডেটা সর্ট করা (ORDER BY + 0)

  3. MySQL-এ SUBSTRING_INDEX ব্যবহার করে হাইফনের পরের সংখ্যা মুছে ফেলা

  4. MySQL-এ ন্যূনতম ও সর্বোচ্চ মান পাওয়া (Getting Minimum and Maximum Value)