WHERE একটি ফলাফলকে সংকুচিত করে শুধু গুরুত্বপূর্ণ সারিতে নিয়ে আসে, আর অপারেটর হলো সেই শব্দভাণ্ডার যা দিয়ে আপনি ফিল্টার করেন। এই পাঠে সেই প্রতিটি অপারেটর আলোচনা করা হবে যা আপনি নিয়মিত ব্যবহার করবেন।
=, <>, >, <, >=, <= ব্যবহার করে সারি ফিল্টার করে।
SELECT * FROM table_name
WHERE column operator value;SELECT * FROM Employee
WHERE salary > 50000;সাধারণ ভুল
NULL-এর সাথে তুলনা করতে IS NULL-এর বদলে = ব্যবহার করা — একটি NULL কখনো কিছুর সমান নয়, এমনকি অন্য একটি NULL-এরও নয়।
একটি WHERE ক্লজে একাধিক শর্ত একত্র করে।
WHERE condition1 AND condition2
WHERE condition1 OR condition2SELECT * FROM Employee
WHERE department = 'IT'
AND salary > 50000;সাধারণ ভুল
AND আর OR মেশানোর সময় বন্ধনী বাদ দেওয়া, যা নিঃশব্দে উদ্দিষ্ট যুক্তি বদলে দেয়।
একটি মান একটি অন্তর্ভুক্তিমূলক পরিসরের মধ্যে পড়ে কি না তা পরীক্ষা করে।
WHERE column BETWEEN low AND high;WHERE salary BETWEEN 50000 AND 70000;সাধারণ ভুল
BETWEEN দুই প্রান্তেই অন্তর্ভুক্তিমূলক তা ভুলে যাওয়া।
টেক্সটকে একটি প্যাটার্নের বিরুদ্ধে মেলায়।
WHERE column LIKE 'pattern';WHERE name LIKE 'J%';% যেকোনো ক্রমের অক্ষর মেলায়, _ ঠিক একটি অক্ষর মেলায়।সাধারণ ভুল
একটি প্যাটার্নের শুরুতে % দেওয়া ('%text'), যা সাধারণত একটি ধীর ফুল টেবিল স্ক্যান বাধ্য করে।
একটি কলামকে সম্ভাব্য মানের একটি তালিকার বিরুদ্ধে মেলায়।
WHERE column IN (value1, value2, ...);WHERE department IN ('IT', 'HR');সাধারণ ভুল
একটি টেবিলের সাথে জয়েন করার বদলে একটি খুব বড় তালিকা দিয়ে IN ব্যবহার করা।
একটি মানকে একটি সাবকোয়েরির ফেরত দেওয়া প্রতিটি মানের বিরুদ্ধে তুলনা করে।
WHERE column > ANY (subquery);
WHERE column > ALL (subquery);WHERE salary > ANY (
SELECT salary FROM Employee WHERE department = 'HR'
);সাধারণ ভুল
ANY-কে IN-এর সাথে গুলিয়ে ফেলা — ANY কম্পারিজন অপারেটরের সাথে কাজ করে, শুধু সমতা নয়। বিস্তারিত সাবকোয়েরিজ পাঠে।
একটি সাবকোয়েরি আদৌ কোনো সারি ফেরত দেয় কি না তা পরীক্ষা করে।
WHERE EXISTS (subquery);WHERE EXISTS (
SELECT 1 FROM Department WHERE Department.id = Employee.department_id
);সাধারণ ভুল
EXISTS-এর ভেতরে নির্দিষ্ট কলাম সিলেক্ট করা — যে মান ফেরত আসে তা আসলে কখনো ব্যবহৃত হয় না।
| অপারেটর | এটি কী পরীক্ষা করে |
|---|---|
| =, <>, >, <, >=, <= | সরাসরি মান তুলনা |
| AND / OR / NOT | শর্ত একত্র করা বা উল্টানো |
| BETWEEN | একটি অন্তর্ভুক্তিমূলক পরিসরের মধ্যে একটি মান |
| LIKE | একটি টেক্সট প্যাটার্ন মেলানো |
| IN | একটি নির্দিষ্ট তালিকার বিরুদ্ধে একটি মান |
| ANY / ALL | একটি সাবকোয়েরির প্রতিটি ফলাফলের বিরুদ্ধে একটি মান |
| EXISTS | একটি সাবকোয়েরি কোনো সারি ফেরত দেয় কি না |
ফিল্টারিং আলোচিত হওয়ার পর, পরের পাঠটি ছোট: ORDER BY দিয়ে ফলাফল সর্ট করা।