MySQL-এ একাধিক কলামের মান একসাথে জোড়া দিয়ে (concatenate) একটি কম্বাইনড ফিল্ড তৈরি করতে CONCAT() ফাংশন ব্যবহার করা হয়। এটি সার্চ, ফিল্টার বা ডিসপ্লে 목적으로 ব্যবহারী।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientFirstName VARCHAR(20),
-> ClientLastName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable(ClientFirstName, ClientLastName) VALUES('John', 'Smith');
mysql> INSERT INTO DemoTable(ClientFirstName, ClientLastName) VALUES('John', 'Miller');
mysql> INSERT INTO DemoTable(ClientFirstName, ClientLastName) VALUES('Carol', 'Taylor');
mysql> INSERT INTO DemoTable(ClientFirstName, ClientLastName) VALUES('Adam', 'Smith');
সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
+----------+-----------------+----------------+
| ClientId | ClientFirstName | ClientLastName |
+----------+-----------------+----------------+
| 1 | John | Smith |
| 2 | John | Miller |
| 3 | Carol | Taylor |
| 4 | Adam | Smith |
+----------+-----------------+----------------+
ফাস্ট নাম + স্পেস + লাস্ট নাম = "Jo%" দিয়ে সার্চ
mysql> SELECT ClientId FROM DemoTable
-> WHERE CONCAT(ClientFirstName, ' ', ClientLastName) LIKE 'Jo%';
ফলাফল
+----------+
| ClientId |
+----------+
| 1 |
| 2 |
+----------+
ব্যাখ্যা:
CONCAT(ClientFirstName, ' ', ClientLastName)→ "John Smith", "John Miller", "Carol Taylor", "Adam Smith"LIKE 'Jo%'→ "Jo" দিয়ে শুরু হওয়া স্ট্রিংগুলো मैच করে- Id=1 ("John Smith") এবং Id=2 ("John Miller") ম্যাচ করেছে
CONCAT_WS() - সেপারেটর সহ কনক্যাট (আরো ক্লিন)
SELECT ClientId
FROM DemoTable
WHERE CONCAT_WS(' ', ClientFirstName, ClientLastName) LIKE 'Jo%';
CONCAT_WS(separator, str1, str2, ...) - NULL হ্যান্ডলিং আটোমেটিক করে (NULL থাকে তবে সেপারেটর যোগ করে না)।
SELECT-এ কম্বাইনড কলাম দেখানো
SELECT
ClientId,
CONCAT_WS(' ', ClientFirstName, ClientLastName) AS FullName
FROM DemoTable;
+----------+--------------+
| ClientId | FullName |
+----------+--------------+
| 1 | John Smith |
| 2 | John Miller |
| 3 | Carol Taylor |
| 4 | Adam Smith |
+----------+--------------+
সতর্কতা: WHERE ক্লজে CONCAT ব্যবহার করলে ইনডেক্স ব্যবহার হয় না। বড় টেবিলে কম্পিউটেড কলাম বা ফুলটেক্সট সার্চ ভালো।