SQL ANY and ALL Operators
در SQL عملگرهای ANY و ALL برای مقایسه مقدار یک ستون با مجموعهای از مقادیر (که معمولاً از یک زیرکوئری برمیگردن) استفاده میشن.
🔹 SQL ANY Operator
-
شرط وقتی TRUE میشه که مقدار مورد نظر با حداقل یکی از مقادیر زیرکوئری تطابق داشته باشه.
-
شبیه:
= ANY (…)
یعنی «اگر با یکی از مقادیر برابر بود».
ساختار:
مثال با ANY
جدول: Orders
order_id | customer_id | amount |
---|---|---|
1 | 1 | 500 |
2 | 2 | 300 |
3 | 3 | 200 |
کوئری:
📌 توضیح:
-
زیرکوئری مقدار
300
رو برمیگردونه. -
شرط
amount > ANY (300)
یعنی "بیشتر از حداقل یکی از مقادیر" → در نتیجه سفارشهایی که مبلغشون بیشتر از 300 هست نمایش داده میشن.
خروجی:
order_id | customer_id | amount |
---|---|---|
1 | 1 | 500 |
🔹 SQL ALL Operator
-
شرط وقتی TRUE میشه که مقدار مورد نظر با تمام مقادیر زیرکوئری مطابقت داشته باشه.
ساختار:
مثال با ALL
📌 توضیح:
-
زیرکوئری مقدار
300
رو برمیگردونه. -
شرط
amount > ALL (300)
یعنی "بیشتر از همه مقادیر زیرکوئری" → پس فقط رکوردهایی که مبلغشون بیشتر از 300 هست نشون داده میشن.
خروجی:
order_id | customer_id | amount |
---|---|---|
1 | 1 | 500 |
🔹 مثال کاربردی ترکیبی
اگر زیرکوئری چند مقدار برگردونه:
📌 یعنی هر سفارشی که مبلغش کمتر از حداقل یکی از مقادیر جدول باشه → پس تقریباً همه رکوردها برمیگردن به جز بزرگترین مبلغ.
✅ خلاصه تفاوت ANY و ALL
-
> ANY
→ بزرگتر از حداقل یکی از مقادیر -
> ALL
→ بزرگتر از همه مقادیر -
< ANY
→ کوچکتر از حداقل یکی از مقادیر -
< ALL
→ کوچکتر از همه مقادیر