SQL WHERE Clause

WHERE برای فیلتر کردن ردیف‌ها در پرس‌وجو استفاده می‌شود.
با این عبارت می‌توانید شرط‌های مختلف بگذارید تا فقط رکوردهای دلخواه از جدول برگردانده شوند.

🟢 ساختار کلی

SELECT column1, column2, ... FROM table_name WHERE condition;
  • condition می‌تواند شامل عملگرهای مقایسه‌ای، منطقی و حتی توابع باشد.

🟡 عملگرهای رایج در شرط

عملگرتوضیحنمونه
=مساویage = 30
<> یا !=نابرابرcity <> 'Tehran'
>بزرگ‌ترage > 18
<کوچک‌ترprice < 1000
>=بزرگ‌تر یا مساویsalary >= 5000
<=کوچک‌تر یا مساویscore <= 80
BETWEEN … AND …بازهage BETWEEN 18 AND 30
IN (…)تطابق با لیستcity IN ('Tehran','Shiraz')
LIKEالگوname LIKE 'A%'
IS NULLمقدار تهیemail IS NULL

🟠 مثال‌های متداول

1️⃣ شرط ساده

SELECT * FROM users WHERE age >= 18;

کاربران با سن ۱۸ یا بالاتر.

2️⃣ چند شرط با AND/OR

SELECT name, city FROM users WHERE city = 'Tehran' AND age < 30;

هم شهر تهران و سن کمتر از ۳۰.

SELECT name FROM users WHERE city = 'Tehran' OR city = 'Shiraz';

تهران یا شیراز.

3️⃣ بین دو مقدار

SELECT * FROM orders WHERE amount BETWEEN 100 AND 500;

مبلغ بین ۱۰۰ تا ۵۰۰.

4️⃣ جستجوی الگو

SELECT * FROM customers WHERE name LIKE 'A%';

نامی که با A شروع شود.
الگوها:

  • % = هر تعداد کاراکتر

  • _ = یک کاراکتر

5️⃣ مقدار NULL

SELECT * FROM users WHERE email IS NULL;

ردیف‌هایی که ایمیل ثبت نشده دارند.

🟣 ترکیب با مرتب‌سازی و محدودسازی

SELECT name, age FROM users WHERE city = 'Mashhad' ORDER BY age DESC LIMIT 10;

۱۰ کاربر اول شهر مشهد به ترتیب سن نزولی.

💡 نکات مهم

  • ترتیب اجرا: ابتدا WHERE فیلتر می‌کند، سپس GROUP BY و بعد ORDER BY.

  • در شرط‌های متنی از کوتیشن ' ' استفاده کنید.

  • برای مقایسه رشته‌ها در برخی DBها حساسیت به حروف (Case) ممکن است فعال یا غیرفعال باشد.

✅ جمع‌بندی

  • WHERE رکوردها را قبل از نمایش فیلتر می‌کند.

  • می‌توانید از عملگرهای مقایسه‌ای (=, >, BETWEEN)، منطقی (AND, OR, NOT) و الگویی (LIKE) استفاده کنید.

  • بهترین روش برای واکشی فقط داده‌های موردنیاز از جداول است.