يعد تعبير MySQL CASE جزءًا من وظيفة التحكم في التدفق التي تتيح لنا كتابة ملف إذا-إلا أو إذا-ثم-إلا منطق للاستعلام. يمكن استخدام هذا التعبير في أي مكان يستخدم برنامجًا أو استعلامًا صالحًا، مثل عبارة SELECT، وWHERE، وORDER BY، وما إلى ذلك.
يتحقق تعبير CASE من صحة الشروط المختلفة ويعيد النتيجة عندما يكون الشرط الأول كذلك حقيقي . بمجرد استيفاء الشرط، فإنه يتوقف عن الاجتياز ويعطي الإخراج. إذا لم يجد أي شرط صحيحًا، فإنه ينفذ كتلة أخرى . عندما لا يتم العثور على الكتلة else، فإنها ترجع a باطل قيمة. الهدف الرئيسي من ماي إس كيو إل عبارة CASE هي للتعامل مع عبارات IF متعددة في جملة SELECT.
يمكننا استخدام عبارة CASE بطريقتين، وهما كما يلي:
1. بيان حالة بسيط:
الطريقة الأولى هي أخذ قيمة ومطابقتها مع العبارة المحددة، كما هو موضح أدناه.
الأرقام الرومانية الرسم البياني 1100
بناء الجملة
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
تقوم بإرجاع النتيجة عند الأول قارن_القيمة المقارنة تصبح صحيحة. وإلا، فإنه سيتم إرجاع جملة else .
مثال
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
انتاج |
بعد التنفيذ الناجح للأمر أعلاه، سنرى الإخراج التالي.
2. بيان الحالة الذي تم البحث فيه:
الطريقة الثانية هي النظر في أ search_condition في ال متى العبارات، وإذا وجدت، قم بإرجاع النتيجة في جملة THEN المقابلة. وإلا، فإنه سيتم إرجاع جملة else . إذا لم يتم تحديد جملة else، فسوف تُرجع قيمة NULL.
بناء الجملة
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
مثال
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
انتاج |
نوع الإرجاع
يقوم تعبير CASE بإرجاع النتيجة اعتمادًا على السياق الذي يتم استخدامه فيه. على سبيل المثال:
- إذا تم استخدامه في سياق السلسلة، فإنه يقوم بإرجاع نتيجة السلسلة.
- إذا تم استخدامه في سياق رقمي، فإنه يقوم بإرجاع عدد صحيح، عائم، قيمة عشرية.
دعم إصدار MySQL
يمكن أن تدعم عبارة CASE إصدارات MySQL التالية:
- ماي إس كيو إل 8.0
- ماي إس كيو إل 5.7
- ماي إس كيو إل 5.6
- ماي إس كيو إل 5.5
- ماي إس كيو إل 5.1
- ماي إس كيو إل 5.0
- ماي إس كيو إل 4.1
- ماي إس كيو إل 4.0
- ماي إس كيو إل 3.23.3
فلنقم بإنشاء جدول' طلاب ' وقم بتنفيذ عبارة CASE على هذا الجدول.
في الجدول أعلاه، يمكننا أن نرى أن عمود الصف يحتوي على النموذج المختصر لقسم الطالب. ولهذا السبب سنقوم بتغيير الشكل القصير للقسم بالشكل الكامل. الآن، قم بتنفيذ الاستعلام التالي للقيام بهذه العملية.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
بعد التنفيذ الناجح للاستعلام أعلاه، سوف نحصل على النتيجة التالية. وهنا يمكننا أن نرى أن قسم يحتوي العمود على نموذج كامل بدلاً من نموذج قصير.
توليد رقم عشوائي في جافا