هرکدام (ANY)
«عملگر ANY» در PostgreSQL یعنی «هرکدام درست شد، قبوله». یعنی یک مقدار را با فهرستی از مقادیر مقایسه می کنیم. اگر شرط برای یکی از آن ها درست شود، نتیجه TRUE می شود. مثل بازی: اگر هر کارت تو قوی تر بود، تو برنده ای.
ANY چیست و چه کار می کند؟
ANY یعنی «هرکدام». زیربررسی (Subquery) یک SELECT داخل WHERE است. اگر مقایسه با هر نتیجه زیربررسی درست شود، شرط برقرار است. بنابراین، می توانی با یک شرط، مقابل چند مقدار بایستی.
نکته: برای درک تفاوت مفهومی، صفحه EXISTS و همچنین ALL را هم ببین. برای تمرین سریع، همین صفحه عملگر ANY را نشانه گذاری کن.
نمونه: محصولاتی با هرکدام از جزئیات سفارش حجیم
می خواهیم محصولاتی را ببینیم که در جدول جزئیات سفارش، رکوردی با مقدار quantity بزرگ تر از 120 دارند.
SELECT
products.product_name
FROM
products
WHERE
products.product_id = ANY (
SELECT
order_details.product_id
FROM
order_details
WHERE
order_details.quantity > 120
);
گام های عملی ساده
- ستون هدف را در SELECT اصلی مشخص کن.
- در WHERE از ANY همراه با زیربررسی استفاده کن.
- در زیربررسی، همان ستون مرتبط را برگردان.
- شرط عددی یا متنی را دقیق بنویس.
هشدار: ستون های در شرط را ایندکس دار نگه دار. همچنین، زیربررسی را فقط با ستون های لازم بنویس تا پرس وجو سریع بماند.
جمع بندی سریع
- ANY یعنی شرط برای یکی درست شود.
- همیشه با زیربررسی یا آرایه می آید.
- برای مقایسه در برابر چند مقدار عالی است.
- با ALL و EXISTS تفاوت دارد.
- روی ستون های مقایسه، ایندکس بگذار.