در SQL، گاهی اوقات لازم است داده‌هایی را فیلتر کنیم که حداقل یکی از چندین شرط مشخص را داشته باشند. برای این کار از اپراتور OR استفاده می‌کنیم.


۱. اپراتور OR چیست؟ 🤔

اپراتور OR به ما کمک می‌کند که چندین شرط را با هم ترکیب کنیم، به‌طوری که اگر حداقل یکی از شرایط برقرار باشد، نتیجه در خروجی نمایش داده شود.

🔹 مثال:
فرض کنید می‌خواهید لیست مشتریانی را ببینید که یا از آلمان (Germany) هستند یا از اسپانیا (Spain).

SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';

نتیجه: اگر یک مشتری از آلمان باشد یا از اسپانیا، در خروجی نمایش داده خواهد شد.


۲. تفاوت بین OR و AND ⚖️

اپراتوررفتار
ORحداقل یکی از شرایط باید درست باشد.
ANDهمه شرایط باید درست باشند.

🔹 مثال مقایسه‌ای:

استفاده از OR (یکی از شرایط کافی است):

SELECT * FROM Customers
WHERE City = 'Berlin' OR Country = 'Norway';

🔹 خروجی: تمام مشتریانی که یا در برلین هستند یا کشورشان نروژ است.

استفاده از AND (هر دو شرط باید برقرار باشند):

SELECT * FROM Customers
WHERE City = 'Berlin' AND Country = 'Germany';

🔹 خروجی: فقط مشتریانی که هم در برلین هستند و هم کشورشان آلمان است.


۳. حداقل یک شرط باید برقرار باشد ✅

فرض کنید می‌خواهید لیست مشتریانی را ببینید که:

1️⃣ در شهر “برلین” هستند،
2️⃣ نام آن‌ها با حرف “G” شروع می‌شود،
3️⃣ کشورشان “نروژ” است.

می‌توانیم این کار را با OR انجام دهیم:

SELECT * FROM Customers
WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';

هر مشتری که حداقل یکی از این شرایط را داشته باشد، نمایش داده می‌شود.


۴. ترکیب اپراتورهای AND و OR 🔀

گاهی اوقات می‌خواهیم ترکیبی از این دو اپراتور را استفاده کنیم. در این شرایط باید از پرانتز () برای اولویت‌بندی درست شرط‌ها استفاده کنیم.

🔹 مثال:
فرض کنید می‌خواهید تمام مشتریانی که:
✅ از اسپانیا هستند و نامشان با “G” یا “R” شروع می‌شود، پیدا کنید.

SELECT * FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

نتیجه:

  • فقط مشتریانی نمایش داده می‌شوند که از اسپانیا باشند و نامشان با “G” یا “R” شروع شود.

اگر پرانتز نگذاریم:

SELECT * FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

🔹 این کوئری اشتباه عمل می‌کند و باعث می‌شود همه مشتریانی که نامشان با “R” شروع می‌شود (بدون توجه به کشورشان) هم نمایش داده شوند.


۵. تمرین! 🎯

حالا که با اپراتور OR آشنا شدی، بیا چند تمرین حل کنیم:

1️⃣ کوئری‌ای بنویس که تمام مشتریانی را نمایش دهد که یا در فرانسه هستند یا در شهر “Berlin” زندگی می‌کنند.
2️⃣ لیست مشتریانی را بگیر که نام آن‌ها با “A” شروع می‌شود یا کشورشان “USA” است.
3️⃣ تمام مشتریانی که در “Germany” هستند و نامشان با “M” یا “S” شروع می‌شود را پیدا کن. (یادت نره که باید از پرانتز استفاده کنی!)