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

MySQL-এ LIKE কোয়েরি ও LIMIT ব্যবহার করে ডাইনামিক অ্যারে সার্চ করা

MySQL-এ কমা-সেপারেটেড স্ট্রিং কলামে LIKE ও LIMIT ব্যবহার করে পেজিনেশনসহ সার্চ করা যায়।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo74 (
    user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    user_names VARCHAR(250)
);

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

INSERT INTO demo74(user_names) VALUES ('John Smith1,John Smith2,John Smith3');
INSERT INTO demo74(user_names) VALUES ('John Smith1');
INSERT INTO demo74(user_names) VALUES ('David Smith1');
INSERT INTO demo74(user_names) VALUES ('John Smith1,John Smith2,John Smith3,John Smith4');

টেবিলের ডেটা:

+---------+-------------------------------------------------+
| user_id | user_names                                      |
+---------+-------------------------------------------------+
| 1       | John Smith1,John Smith2,John Smith3             |
| 2       | John Smith1                                     |
| 3       | David Smith1                                    |
| 4       | John Smith1,John Smith2,John Smith3,John Smith4 |
+---------+-------------------------------------------------+

কোয়েরি

'John Smith1' শব্দ থাকা রোগুলো সিলেক্ট (LIMIT 100):

SELECT * FROM demo74 
WHERE user_names LIKE '%John Smith1%' 
ORDER BY user_id ASC 
LIMIT 100;

আউটপুট

+---------+-------------------------------------------------+
| user_id | user_names                                      |
+---------+-------------------------------------------------+
| 1       | John Smith1,John Smith2,John Smith3             |
| 2       | John Smith1                                     |
| 4       | John Smith1,John Smith2,John Smith3,John Smith4 |
+---------+-------------------------------------------------+

ব্যাখ্যা:

  • LIKE '%John Smith1%' - আংশিক ম্যাচ (কমা-সেপারেটেড স্ট্রিংয়ের মধ্যে)।
  • ORDER BY user_id ASC - সुसंगত অর্ডার নিশ্চিত করতে।
  • LIMIT 100 - সর্বোচ্চ ১০০ রো (পেজিনেশন)।

সতর্কতা: কমা-সেপারেটেড স্ট্রিংতে সার্চ করা নরমালাইজড ডিজাইন নয়। ভালো প্র্যাকটিস: আলাদা টেবিলে নরমালাইজড ফরমে রাখুন (one-to-many রিলেশনশিপ)। তবে লিগ্যাসি ডেটা বা কুইক প্রোটোটাইপের জন্য এটি কাজে আসে।

বিকল্প: FIND_IN_SET('John Smith1', user_names) > 0 (যদি স্ট্রিক্ট কমা-সেপারেটেড হয়)।

  1. MySQL LIKE কোয়েরিতে % (পার্সেন্ট) চিহ্ন সার্চ করা (Escape ব্যবহার করে)

  2. MySQL-এ LIKE অপারেটর দিয়ে একাধিক ফিল্ডে একই মান খুঁজে বের করা

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ LIKE অপারেটরকে IN() এর মতো ব্যবহার করা