انتقل إلى محتوى الدرس

Short Circuit Check with EXISTS فحص الوجود السريع بـ EXISTS

تعلّم الاستعلامات الفرعية المترابطة ومعامل EXISTS في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عندما تحتاج فقط إلى التحقق من وجود سجل مرتبط واحد على الأقل في جدول آخر دون الحاجة لجلب أعمدته، استخدم المعامل المنطقي EXISTS (subquery):

  • التوقف المبكر السريع (Short-Circuit): بمجرد عثور محرك InnoDB على أول صف مطابق في الجدول الداخلي، يرجع المعامل EXISTS القيمة TRUE فوراً ويتوقف عن فحص بقية الصفوف المطابقة لذلك المفتاح.
  • اصطلاح SELECT 1: لأن EXISTS لا ينظر إلى قيم الأعمدة المختارة بل يفحص وجود الصف فقط، يَكتفي المطورون بكتابة SELECT 1 داخل الاستعلام الفرعي.
SQL
-- Find customers who have placed at least one paid order
SELECT
  u.user_id,
  u.full_name,
  u.email
FROM users AS u
WHERE EXISTS (
  SELECT 1
  FROM orders AS o
  WHERE o.user_id = u.user_id
    AND o.status = 'paid'
);