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

MySQL-এ CONCAT() ফাংশন দিয়ে কম্বাইনড ফিল্ড রেজাল্ট পাওয়া

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 ব্যবহার করলে ইনডেক্স ব্যবহার হয় না। বড় টেবিলে কম্পিউটেড কলাম বা ফুলটেক্সট সার্চ ভালো।

  1. MySQL-এ শর্তসাপেক্ষে SUM() - CASE স্টেটমেন্ট দিয়ে ফিল্ড ভ্যালু বেসড যোগফল

  2. MySQL-এ সংখ্যাসূচক কোয়েরি ফলাফল ভাগ করা (SPLIT)

  3. MySQL SELECT-এ AS কীওয়ার্ড ব্যবহার করে কাস্টম ফিল্ড জেনারেট করা

  4. MySQL-এ TIMESTAMPDIFF() ফাংশন ব্যবহার করে DOB থেকে বয়স বের করা