MySQL-এ একাধিক কলাম কনক্যাটেনেট করা: CONCAT() vs CONCAT_WS()
২টির বেশি কলাম বা স্ট্রিং একসাথে যোগ করতে দুটি ফাংশন ব্যবহার করা যায়: CONCAT() (সেপারেটর ম্যানুয়ালি দিতে হয়) এবং CONCAT_WS() (With Separator — সেপারেটর একবার দিলে বাকিগুলোতে অটো অ্যাড হয়)।
সিনট্যাক্স: CONCAT()
SELECT CONCAT(col1, '/', col2, '/', col3, '/', ...) AS Combined FROM yourTableName;
সিনট্যাক্স: CONCAT_WS()
SELECT CONCAT_WS('/', col1, col2, col3, ...) AS Combined FROM yourTableName;
CONCAT_WS = CONCAT With Separator। প্রথম আর্গুমেন্ট সেপারেটর, বাকিগুলো কলাম। NULL মান অটোমেটিক্যালি স্কিপ হয় (CONCAT-এ NULL থাকলে পুরো ফলাফল NULL হয়)।
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE MoreThan2ColumnConcat (Id INT, Name VARCHAR(20), Age INT, Marks INT);
ডেটা ইনসার্ট
mysql> INSERT INTO MoreThan2ColumnConcat VALUES(1, 'John', 24, 89), (11, 'Larry', 25, 90), (15, 'Mike', 26, 79), (16, 'Sam', 21, 99);
সকল রেকর্ড
mysql> SELECT * FROM MoreThan2ColumnConcat;
+------+-------+------+-------+ | Id | Name | Age | Marks | +------+-------+------+-------+ | 1 | John | 24 | 89 | | 11 | Larry | 25 | 90 | | 15 | Mike | 26 | 79 | | 16 | Sam | 21 | 99 | +------+-------+------+-------+
CONCAT() ব্যবহার
mysql> SELECT CONCAT(Id, '/', Name, '/', Age, '/', Marks) AS ConcatMoreFields FROM MoreThan2ColumnConcat;
+------------------+ | ConcatMoreFields | +------------------+ | 1/John/24/89 | | 11/Larry/25/90 | | 15/Mike/26/79 | | 16/Sam/21/99 | +------------------+
CONCAT_WS() ব্যবহার (সহজ এবং NULL-সেফ)
mysql> SELECT CONCAT_WS('/', Id, Name, Age, Marks) AS ConcatMoreFields FROM MoreThan2ColumnConcat;
+------------------+ | ConcatMoreFields | +------------------+ | 1/John/24/89 | | 11/Larry/25/90 | | 15/Mike/26/79 | | 16/Sam/21/99 | +------------------+
সুপারিশ: CONCAT_WS ব্যবহার করুন — কোড ছোট, পঠনীয়, এবং NULL হ্যান্ডলিং অটোমেটিক।