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

MySQL-এ MATCH এবং AGAINST ব্যবহার করে নির্দিষ্ট কলামে স্ট্রিং খুঁজে বের করা


টেবিল তৈরি এবং ফুলটেক্সট ইন্ডেক্স যোগ করা

প্রথমে টেবিল তৈরি করি:

mysql> create table DemoTable1833 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec)

ফুলটেক্সট সার্চের জন্য কলামে FULLTEXT ইন্ডেক্স যোগ করি:

Mysql> alter table DemoTable1833 ADD FULLTEXT(Name); Query OK, 0 rows affected, 1 warning (0.00 sec) Records: 0 Duplicates: 0 Warnings: 1

রেকর্ড ইনসার্ট করা

mysql> insert into DemoTable1833 values('John Doe'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1833 values('Adam Smith'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1833 values('Chris Brown'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1833 values('John Smith'); Query OK, 1 row affected (0.00 sec)

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

mysql> select * from DemoTable1833;
+-------------+
| Name        |
+-------------+
| John Doe    |
| Adam Smith  |
| Chris Brown |
| John Smith  |
+-------------+
4 rows in set (0.00 sec)

MATCH ... AGAINST দিয়ে স্ট্রিং খোঁজা

বুলিয়ান মোডে 'John Smith' শব্দদ্বয় খোঁজার কোয়েরি:

mysql> select * from DemoTable1833 where MATCH(Name) AGAINST('+John +Smith' IN BOOLEAN MODE);

আউটপুট (প্রাসঙ্গিকতা অনুযায়ী সাজানো):

+------------+
| Name       |
+------------+
| John Smith |
| John Doe   |
| Adam Smith |
+------------+
3 rows in set (0.00 sec)

ব্যাখ্যা: '+' চিহ্ন নির্দেশ করে যে ওই শব্দটি অবশ্যই থাকতে হবে। ফুলটেক্সট সার্চ বড় ডেটাসেটে দ্রুত এবং প্রাসঙ্গিক ফলাফল দেয়।

  1. MySQL-এ নির্দিষ্ট সারি মাত্র ডিলিট করার পদ্ধতি (NOT IN ব্যবহার)

  2. MySQL-এ LIKE এবং SUBSTRING ব্যবহার করে মিলে যাওয়া স্ট্রিং বের করে নতুন কলাম তৈরি করা

  3. MySQL-এ SUBSTRING_INDEX() দিয়ে হাইফেন-বিভক্ত স্ট্রিং আলাদা কলামে বির্ভক্ত করা

  4. MySQL-এ স্ট্রিং কলাম থেকে নির্দিষ্ট প্যাটার্নের রেকর্ড বের করা (স্ট্রিং, সংখ্যা, স্পেশাল ক্যারেক্টার)