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

MySQL-এ SUBSTRING_INDEX() ব্যবহার করে কলাম বিভক্ত করা (স্প্লিট)

MySQL-এ একটি কলামের ভ্যালু ডিলিমিটার (যেমন '_') দিয়ে বিভক্ত করে অংশ বের করার জন্য SUBSTRING_INDEX() ফাংশন ব্যবহার করা হয়।

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

CREATE TABLE DemoTable (
    Name VARCHAR(40)
);

INSERT INTO DemoTable VALUES('John_Smith');
INSERT INTO DemoTable VALUES('Carol_Taylor');
INSERT INTO DemoTable VALUES('David_Miller');

কুয়েরি: প্রথম অংশ (আন্ডারস্কোরের আগে) বের করা

SELECT IF(
    LOCATE('_', Name) = 0, 
    '', 
    SUBSTRING_INDEX(Name, '_', 1)
) FROM DemoTable;

ফলাফল

+---------------------------------------------------------+
| if(locate('_',Name)=0,'',substring_index(Name, '_', 1)) |
+---------------------------------------------------------+
| John                                                    |
| Carol                                                   |
| David                                                   |
+---------------------------------------------------------+

ফাংশন ব্যাখ্যা

  • LOCATE('_', Name) — '_' এর পজিশন বের করে (পাওয়া নাও গেলে ০)
  • IF(LOCATE(...) = 0, '', ...) — '_' না থাকলে খালি স্ট্রিং রিটার্ন
  • SUBSTRING_INDEX(Name, '_', 1) — প্রথম '_' এর আগের অংশ (১ = বাম পাশ)

দ্বিতীয় অংশ (ডান পাশ) বের করা

SELECT IF(
    LOCATE('_', Name) = 0,
    '',
    SUBSTRING_INDEX(Name, '_', -1)
) FROM DemoTable;

ফলাফল: Smith, Taylor, Miller

MySQL 8.0+: JSON_TABLE ব্যবহার (অ্যারে-তে রূপান্তর)

SELECT jt.part FROM DemoTable,
    JSON_TABLE(
        CONCAT('["', REPLACE(Name, '_', '","'), '"]'),
        '$[*]' COLUMNS(part VARCHAR(50) PATH '$')
    ) AS jt;

এটি সকল অংশ আলাদা রো হিসেবে দেবে।

  1. MySQL-এ নির্দিষ্ট কলামের ডেটা এক্সপোর্ট করুন

  2. MySQL-এ অ্যালফানিউমেরিক কালাম সর্ট করার পদ্ধতি (নাম্বার + আক্ষরিক)

  3. MySQL-এ NVARCHAR কলাম তৈরির পদ্ধতি

  4. MySQL সিকোয়েন্স তৈরি (How to Create a MySQL Sequence)