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

MySQL-এ SUBSTRING_INDEX ব্যবহার করে কমা দিয়ে কলাম ভাগ করা (Split)

MySQL-এ কমা-সেপারেটেড স্ট্রিং কলামকে দুটি আলাদা কলামে (First Name, Last Name) ভাগ করতে SUBSTRING_INDEX() ফাংশন ব্যবহার করা হয়।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo79 (fullname VARCHAR(50));
INSERT INTO demo79 VALUES ('John,Smith'), ('David,Miller'), ('Chris,Brown');

টেবিলের ডেটা:

+--------------+
| fullname     |
+--------------+
| John,Smith   |
| David,Miller |
| Chris,Brown  |
+--------------+

কোয়েরি

SELECT 
    fullname,
    SUBSTRING_INDEX(fullname, ',', 1) AS First_Name,
    SUBSTRING_INDEX(fullname, ',', -1) AS Last_Name
FROM demo79;

আউটপুট

+--------------+------------+-----------+
| fullname     | First_Name | Last_Name |
+--------------+------------+-----------+
| John,Smith   | John       | Smith     |
| David,Miller | David      | Miller    |
| Chris,Brown  | Chris      | Brown     |
+--------------+------------+-----------+

ব্যাখ্যা:

  • SUBSTRING_INDEX(str, delim, count)
  • count = 1 -> প্রথম কমার আগের অংশ (First Name)।
  • count = -1 -> শেষ কমার পরের অংশ (Last Name)।
  • যদি একাধিক কমা থাকে (যেমন 'John,Middle,Smith'), count=1 -> 'John', count=-1 -> 'Smith'।

সীমাবদ্ধতা: এটি শুধু ২টা পার্টে ভাগ করতে পারে। একাধিক পার্টে ভাগ করতে (split to rows) MySQL 8.0-এ JSON_TABLE বা রিকারসিভ CTE ব্যবহার করতে হয়।

বিকল্প: SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ',', 2), ',', -1) দিয়ে ২য় পার্ট বের করা যায়।

  1. কমা-বিচ্ছিন্ন MySQL কলাম থেকে অনুসন্ধান করা

  2. MySQL-এ CASE স্টেটমেন্ট দিয়ে কাস্টম সর্টিং (দুই কলাম)

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

  4. MySQL-এ SUBSTRING_INDEX এবং CAST দিয়ে ফ্লোট ভ্যালু দুটি কলামে ভাগ করা