هل يهتم EXISTS بالقيم الموجودة في قائمة SELECT؟

سهلقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

يفحص EXISTS وجود صف واحد على الأقل في نتيجة الاستعلام الفرعي. لا يقارن القيم المعروضة داخله بقيمة معينة، ولا يشترط أن تكون تلك القيم أرقامًا أو نصوصًا غير فارغة. لذلك فإن اختيار NULL داخل استعلام يعيد صفًا لا يجعل اختبار الوجود غير متحقق.

تشيع كتابة SELECT 1 داخل هذا النوع من الاستعلامات لأنها توضح أن الهدف هو الوجود. العدد واحد ليس قيمة سحرية، ولا يعني البحث عن صف يحتوي على الرقم واحد. ما يحدد نجاح الاختبار هو وجود الصفوف بعد تطبيق شروط الاستعلام الداخلي، وليس محتوى التعبير الموجود في قائمة الاختيار.

مثال

SELECT EXISTS (
  SELECT NULL
  WHERE 2 > 1
) AS has_row;

يحتوي الاستعلام الداخلي هنا على صف لأن شرطه متحقق. أما إذا أصبح الشرط غير متحقق، فلن توجد صفوف داخلية مهما كانت القيمة المكتوبة بعد SELECT.

باختصار: يهتم EXISTS بوجود الصفوف، ولذلك يمكن لصف يعرض NULL أن يحقق الاختبار.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

أي وصف صحيح لاختبار EXISTS الذي يعيد استعلامه الداخلي صفًا واحدًا قيمته NULL؟