مش موجودة في Ms sql بس ممكن تبدلها ب CASE Statement
دالة IF() في MySQL بتعمل زي الـ if-else في لغات البرمجة. بتسمح لك ترجع قيمة معينة لو الشرط صحيح، أو قيمة تانية لو الشرط خطأ.
الصيغة العامة لدالة IF():
IF(condition, value_if_true, value_if_false)
- condition: الشرط اللي عايز تختبره.
- value_if_true: القيمة اللي هترجع لو الشرط صحيح.
- value_if_false: القيمة اللي هترجع لو الشرط خطأ.
أمثلة عملية على استخدام IF()
1. اختبار شرط بسيط:
SELECT IF(500 < 1000, "YES", "NO");
- الشرح: لو الرقم 500 أصغر من 1000 (الشرط صحيح)، هترجع القيمة “YES”، وإلا هترجع “NO”.
- النتيجة:
YES
.
2. اختبار شرط بأرقام:
SELECT IF(500 < 1000, 5, 10);
- الشرح: لو 500 أقل من 1000 (الشرط صحيح)، هترجع القيمة
5
، وإلا هترجع10
. - النتيجة:
5
.
3. مقارنة نصوص:
SELECT IF(STRCMP("hello", "bye") = 0, "YES", "NO");
- الشرح:
- STRCMP بتقارن بين النصين “hello” و”bye”.
- لو النصوص متساوية (الشرط صحيح)، هترجع “YES”، وإلا هترجع “NO”.
- النتيجة:
NO
لأن النصوص مختلفة.
4. تطبيق داخل استعلام على جدول:
لو عندك جدول اسمه OrderDetails يحتوي على الأعمدة OrderID وQuantity، وعايز تعرف إذا كانت الكمية أكبر من 10 أو لأ:
SELECT OrderID, Quantity, IF(Quantity > 10, "MORE", "LESS") AS QuantityStatus
FROM OrderDetails;
- الشرح:
- بتختبر إذا كانت الكمية (
Quantity
) أكبر من 10. - لو الشرط صحيح، هترجع “MORE”، وإلا هترجع “LESS”.
- بتختبر إذا كانت الكمية (
- النتيجة: لكل طلب، العمود الإضافي QuantityStatus هيعرض “MORE” أو “LESS” بناءً على الكمية.
ملاحظات تقنية:
- دالة IF() متوفرة في MySQL من الإصدار 4.0 وما بعده.
- بتستخدم غالبًا لتسهيل كتابة الاستعلامات اللي بتحتاج شروط بسيطة.
- لو عايز شروط معقدة أكتر، ممكن تفكر تستخدم CASE Statement.
مقارنة بين النصوص والأرقام باستخدام IF():
مقارنة أرقام:
SELECT IF(100 > 50, "GREATER", "SMALLER");
- النتيجة:
GREATER
.
مقارنة نصوص:
SELECT IF("apple" = "orange", "EQUAL", "NOT EQUAL");
- النتيجة:
NOT EQUAL
.
خلاصة:
- دالة IF() سهلة ومباشرة، وبتساعدك تضيف منطق بسيط لاستعلامات MySQL.
- مناسبة للاختبارات السريعة والقرارات البسيطة في قواعد البيانات.
- لو عندك شروط أكتر تعقيدًا أو متعددة، الأفضل تستخدم CASE Statement.