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

Anatomy of WITH RECURSIVE Queries تشريح الاستعلام العودي RECURSIVE

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

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

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

عندما يشير التعبير الجدولي إلى اسمه الذاتي داخل تعريفه لتوليد بيانات تكرارية، يجب إضافة الكلمة المفتاحية RECURSIVE لتصبح الصيغة WITH RECURSIVE cte_name AS (...). ويتكون كل استعلام عودي من جزأين يربطهما UNION ALL:

  • 1. جملة الأساس (Anchor Member): استعلام SELECT غير عودي يُنفذ مرة واحدة في البداية لتحديد نقطة الانطلاق (الصف الجذر).
  • 2. الجملة العودية (Recursive Member): استعلام SELECT يستدعي اسم cte_name نفسه لتوليد الدفعة التالية من الصفوف، ويتكرر حتى ترجع الدورة صفراً من الصفوف الجديدة (شرط التوقف).
SQL
-- Generate an integer sequence from 1 to 5 using WITH RECURSIVE
WITH RECURSIVE number_series AS (
  SELECT 1 AS seq_num
  UNION ALL
  SELECT seq_num + 1
  FROM number_series
  WHERE seq_num < 5
)
SELECT seq_num FROM number_series;