PostgreSQL

PostgreSQL — همه (ALL)

آخرین بروزرسانی: 1404/08/18

همه (ALL)

«عملگر ALL» در PostgreSQL یعنی «شرط برای همه درست باشد». یعنی یک مقدار را با مجموعه ای از مقادیر مقایسه می کنی. اگر شرط برای تک تک آن مقادیر درست بود، نتیجه TRUE می شود. مثل آزمون کلاس: باید همه پاسخ ها درست باشند.

ALL چیست و کِی به درد می خورد؟

ALL یعنی «همه». زیربررسی (Subquery) یک SELECT داخل WHERE است. شرط فقط وقتی برقرار است که مقایسه برای تمام نتایج زیربررسی درست باشد. بنابراین، ALL سخت گیر است و هر استثنا نتیجه را رد می کند.

نکته: برای مقایسه ملایم تر، صفحه ANY را ببین. همچنین برای پیوند داخلی، عملگر ALL را به عنوان مرجع نگه دار.

نمونه: مقایسه product_id برابر با همه نتایج

می خواهیم بررسی کنیم آیا شناسه محصول با تمام شناسه های برگردانده شده برابر است. طبق منبع، این پرس وجو معمولاً FALSE می شود.

SELECT
  products.product_name
FROM
  products
WHERE
  products.product_id = ALL (
    SELECT
      order_details.product_id
    FROM
      order_details
    WHERE
      order_details.quantity > 10
  );

مشاهده در ادیتور

گام های عملی

  1. ستون هدف را در SELECT اصلی مشخص کن.
  2. در WHERE از ALL همراه با زیربررسی استفاده کن.
  3. در زیربررسی، فقط ستون لازم را برگردان.
  4. شرط ها را دقیق و ایندکس پسند بنویس.

هشدار: ALL سخت گیر است. اگر حتی یک مقدار شرط را نقض کند، نتیجه FALSE می شود. پس منطق مقایسه را آگاهانه انتخاب کن.

جمع بندی سریع

  • ALL یعنی شرط برای همه مقادیر.
  • هر استثنا نتیجه را باطل می کند.
  • زیربررسی را کم حجم و ایندکس دار نگه دار.
  • برای مقایسه نرم تر، ANY را بررسی کن.