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

MySQL-এ কমা-সেপারেটেড সংখ্যা মहीনামে রূপান্তর করা (CASE + FIND_IN_SET)

MySQL-এ কমা-সেপারেটেড সংখ্যা (মাস নম্বর) থাকলে সেগুলো মहीনামে রূপান্তর করতে CASE স্টেটমেন্ট এবং FIND_IN_SET() ফাংশন কম্বাইন করে ব্যবহার করা হয়।

টেবিল এবং ডেটা

CREATE TABLE DemoTable1629 (
    Month VARCHAR(100)
);

INSERT INTO DemoTable1629 VALUES('2,4,6');
INSERT INTO DemoTable1629 VALUES('1,3,5,12');
INSERT INTO DemoTable1629 VALUES('7,8,9,10');

কুয়েরি

SELECT TRIM(TRAILING ',' FROM CONCAT(
    CASE WHEN FIND_IN_SET(1, Month) THEN 'January,' ELSE '' END,
    CASE WHEN FIND_IN_SET(2, Month) THEN 'February,' ELSE '' END,
    CASE WHEN FIND_IN_SET(3, Month) THEN 'March,' ELSE '' END,
    CASE WHEN FIND_IN_SET(4, Month) THEN 'April,' ELSE '' END,
    CASE WHEN FIND_IN_SET(5, Month) THEN 'May,' ELSE '' END,
    CASE WHEN FIND_IN_SET(6, Month) THEN 'June,' ELSE '' END,
    CASE WHEN FIND_IN_SET(7, Month) THEN 'July,' ELSE '' END,
    CASE WHEN FIND_IN_SET(8, Month) THEN 'August,' ELSE '' END,
    CASE WHEN FIND_IN_SET(9, Month) THEN 'September,' ELSE '' END,
    CASE WHEN FIND_IN_SET(10, Month) THEN 'October,' ELSE '' END,
    CASE WHEN FIND_IN_SET(11, Month) THEN 'November,' ELSE '' END,
    CASE WHEN FIND_IN_SET(12, Month) THEN 'December,' ELSE '' END
)) FROM DemoTable1629;

ফলাফল

+--------------------------------------------------+
| February,April,June                              |
| January,March,May,December                       |
| July,August,September,October                    |
+--------------------------------------------------+

ব্যাখ্যা

  • FIND_IN_SET(n, Month) — n-এম্বার মাস লিস্টে আছে কিনা চেক করে
  • CASE WHEN ... THEN 'Name,' ELSE '' END — থাকলে নাম যোগ করে, নাইলে খালি
  • CONCAT(...) — সব মहीনাম একসাথে জোড়ায়
  • TRIM(TRAILING ',' FROM ...) — শেষের কমা সরিয়ে ফেলে

নোট

এই পদ্ধতি হардকোডেড এবং ১২ মাস পর্যন্ত সীমাবদ্ধ। ডাইনামিক সমাধানের জন্য নরমালাইজড টেবিল (month_id, month_name) ব্যবহার করা উচিত।

  1. MySQL-এ কাস্টম ফাংশন তৈরি করে কমা-বিচ্ছিন্ন স্ট্রিংয়ের যোগফল বের করুন

  2. MySQL ROUND() 함수로 숫자 반올림하기

  3. MySQL-এ CASE WHEN দিয়ে শর্তভিত্তিক কাউন্ট করা (Conditional Aggregation)

  4. MySQL-এ সংখ্যা মিশ্র স্ট্রিং সর্ট করুন