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

MySQL-এ LIKE ও CONCAT ব্যবহার করে একই রোয়ের দুটি কলামে সাবস্ট্রিং ম্যাচ করা

একই রোয়ের দুটি কলামে একটি কলামের মান অন্যটিতে সাবস্ট্রিং হিসেবে আছে কিনা চেক করতে LIKE এবং CONCAT() একসাথে ব্যবহার করা হয়।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100), FullName VARCHAR(100));
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable VALUES ('John', 'John Smith');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES ('David', 'John Miller');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES ('Bob', 'Sam Miller');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable VALUES ('Chris', 'Chris Brown');
Query OK, 1 row affected (0.10 sec)

রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট:

+-----------+-------------+
| FirstName | FullName    |
+-----------+-------------+
| John      | John Smith  |
| David     | John Miller |
| Bob       | Sam Miller  |
| Chris     | Chris Brown |
+-----------+-------------+
4 rows in set (0.00 sec)

FirstName FullName-এ আছে কিনা চেক (LIKE + CONCAT)

mysql> SELECT FirstName, FullName 
FROM DemoTable 
WHERE FullName LIKE CONCAT('%', FirstName, '%');

ফলাফল (John ও Chris মিলে গেছে):

+-----------+-------------+
| FirstName | FullName    |
+-----------+-------------+
| John      | John Smith  |
| Chris     | Chris Brown |
+-----------+-------------+
2 rows in set (0.00 sec)

ব্যাখ্যা

  • CONCAT('%', FirstName, '%') - FirstName-এর চারপাশে 와일্ডকার্ড (%) যোগ করে প্যাটার্ন বানায়।
  • LIKE - প্যাটার্ন ম্যাচ করে।
  • এটি কেস-ইনসেনসিটিভ (ডিফল্ট collation-এ)۔

কেস-সেনসিটিভ ম্যাচ

WHERE FullName LIKE CONCAT('%', FirstName, '%') COLLATE utf8mb4_bin

পারফরম্যান্স নোট

শুরুতে % থাকলে ইনডেক্স ব্যবহার হয় না (ফুল স্ক্যান)। বড় টেবিলে ফুল-টেক্সট সার্চ বা জেনারেটেড কলাম ব্যবহার করুন।

  1. MySQL-এ একটি কলামের স্ট্রিংগুলোর মধ্যে নির্দিষ্ট স্ট্রিং আছে কিনা যাচাই করা

  2. MySQL에서 컬럼 값별 행 개수 세기 (GROUP BY + COUNT)

  3. MySQL-এ সাবকোয়ারি এবং GROUP BY ব্যবহার করে সর্বোচ্চ কমিউলেটিভ মান বের করা

  4. C#-তে দুটি String অবজেক্টের একই মান আছে কিনা যাচাই করা Equals() দিয়ে