MySQL-এ একাধিক কলাম একসাথে কনক্যাটেনেট করে শর্তসাপেক্ষ রো সিলেক্ট করতে CONCAT_WS() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT CONCAT_WS(separator, col1, col2, ...) FROM yourTable WHERE condition;
উদাহরণ
টেবিল তৈরি:
CREATE TABLE demo38 (
user_id INT,
user_first_name VARCHAR(20),
user_last_name VARCHAR(20),
user_date_of_birth DATE
);
ডেটা ইনসার্ট:
INSERT INTO demo38 VALUES (10, 'John', 'Smith', '1990-10-01'); INSERT INTO demo38 VALUES (11, 'David', 'Miller', '1994-01-21'); INSERT INTO demo38 VALUES (11, 'John', 'Doe', '1992-02-01'); INSERT INTO demo38 VALUES (12, 'Adam', 'Smith', '1996-11-11'); INSERT INTO demo38 VALUES (13, 'Chris', 'Brown', '1997-03-10');
টেবিলের ডেটা:
+---------+-----------------+----------------+--------------------+ | user_id | user_first_name | user_last_name | user_date_of_birth | +---------+-----------------+----------------+--------------------+ | 10 | John | Smith | 1990-10-01 | | 11 | David | Miller | 1994-01-21 | | 11 | John | Doe | 1992-02-01 | | 12 | Adam | Smith | 1996-11-11 | | 13 | Chris | Brown | 1997-03-10 | +---------+-----------------+----------------+--------------------+
কোয়েরি
user_id ১১ বা ১৩ হলে নাম, উপনাম এবং জন্ম বছরের স্ট্রিং তৈরি:
SELECT CONCAT_WS('/', user_first_name, user_last_name, 'the date of birth year is=', DATE_FORMAT(user_date_of_birth, '%Y')) AS Output
FROM demo38
WHERE user_id IN (11, 13);
আউটপুট
+----------------------------------------------+ | Output | +----------------------------------------------+ | David/Miller/the date of birth year is=/1994 | | John/Doe/the date of birth year is=/1992 | | Chris/Brown/the date of birth year is=/1997 | +----------------------------------------------+
ব্যাখ্যা: CONCAT_WS('/' , ...) প্রথম আর্গুমেন্ট সেপারেটর হিসেবে ব্যবহার করে বাকি আর্গুমেন্টগুলো জড়িয়ে দেয়। NULL মান থাকলে সেটি বাদ দিয়ে যায় (সাধারণ CONCAT-এ NULL থাকলে পুরো রেজাল্ট NULL হয়)। DATE_FORMAT(date, '%Y') শুধু বছর বের করে।