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

MySQL-এ একাধিক কলামের ভিত্তিতে ফিল্টারিং (WHERE + OR)

MySQL-এ একাধিক কলামের কম্বিনেশন দিয়ে ফিল্টার করতে WHERE ক্লজে টাপল (tuple) কম্পারিশন বা OR অপারেটর ব্যবহার করা হয়।

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

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(10),
    -> Score INT
    -> );
mysql> INSERT INTO DemoTable(Name, Score) VALUES('John', 80);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('John', 90);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('Carol', 89);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('John', 86);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('Carol', 98);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('David', 99);

সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;
+----+-------+-------+
| Id | Name  | Score |
+----+-------+-------+
|  1 | John  |    80 |
|  2 | John  |    90 |
|  3 | Carol |    89 |
|  4 | John  |    86 |
|  5 | Carol |    98 |
|  6 | David |    99 |
+----+-------+-------+

টাপল কম্পারিশন দিয়ে ফিল্টার (Name, Score) জোড়া মিলিয়ে

mysql> SELECT * FROM DemoTable 
    -> WHERE (Name, Score) = ('John', 90) 
    ->    OR (Name, Score) = ('Carol', 98);

ফলাফল

+----+-------+-------+
| Id | Name  | Score |
+----+-------+-------+
|  2 | John  |    90 |
|  5 | Carol |    98 |
+----+-------+-------+

ব্যাখ্যা: (Name, Score) = ('John', 90) সিনট্যাক্সটি MySQL-এ টাপল কম্পারিশন হিসেবে কাজ করে। এটি একই সময় Name='John' AND Score=90 চেক করে।

বিকল্প পদ্ধতি: AND/OR ব্যবহার

SELECT * FROM DemoTable 
WHERE (Name = 'John' AND Score = 90) 
   OR (Name = 'Carol' AND Score = 98);

দুটি পদ্ধতির ফলাফল একই। টাপল সিনট্যাক্স আরও সংক্ষিপ্ত এবং পড়তে সহজ।

IN অপারেটর দিয়ে একাধিক টাপল (MySQL 8.0+)

SELECT * FROM DemoTable 
WHERE (Name, Score) IN (('John', 90), ('Carol', 98), ('David', 99));

নোট: এই ফিচার MySQL 8.0.13+ এ উপলব্ধ। পুরনো ভার্সনে টাপল IN সাপোর্ট করে না।

  1. MySQL-এ GREATEST() দিয়ে একাধিক কলাম একসাথে সর্ট করা

  2. MySQL-এ একাধিক LIKE অপারেটর ORDER BY-এ ব্যবহার করা

  3. MySQL-এ একাধিক কলাম অনুযায়ী অর্ডার বাই কাজ না করলে সমাধান

  4. MySQL-এ একাধিক কলামে সার্চ করার পদ্ধতি