ביטוי MySQL CASE הוא חלק מפונקציית זרימת הבקרה המספקת לנו לכתוב אם-אחר או אם-אז-אחר היגיון לשאילתה. ניתן להשתמש בביטוי זה בכל מקום שמשתמש בתוכנית או שאילתה חוקיים, כגון SELECT, WHERE, ORDER BY סעיף וכו'.
ביטוי CASE מאמת תנאים שונים ומחזיר את התוצאה כאשר התנאי הראשון הוא נָכוֹן . ברגע שהתנאי מתקיים, הוא מפסיק לעבור ונותן את הפלט. אם הוא לא ימצא שום תנאי אמיתי, הוא מבצע את חסימה אחרת . כאשר הבלוק else לא נמצא, הוא מחזיר א ריק ערך. המטרה העיקרית של MySQL הצהרת CASE היא להתמודד עם הצהרות IF מרובות בסעיף SELECT.
אנו יכולים להשתמש בהצהרת CASE בשתי דרכים, שהן כדלקמן:
1. הצהרת CASE פשוטה:
השיטה הראשונה היא לקחת ערך ולהתאים אותו להצהרה הנתונה, כפי שמוצג להלן.
מערך קוד c של מחרוזות
תחביר
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. חיפוש בהצהרת CASE:
השיטה השנייה היא לשקול את א search_condition בתוך ה מתי סעיפים, ואם הוא מוצא, החזר את התוצאה בסעיף THEN המקביל. אחרת, הוא יחזיר את סעיף ה-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 הבאות:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
תן לנו ליצור טבלה ' תלמידים ' ובצע את הצהרת CASE בטבלה זו.
Marquee HTML
בטבלה לעיל, אנו יכולים לראות כי עמודת כיתה מכיל את הטופס הקצר של המחלקה של הסטודנט. לכן אנחנו הולכים לשנות את הטופס הקצר של המחלקה עם הטופס המלא. כעת, בצע את השאילתה הבאה כדי לבצע פעולה זו.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
לאחר ביצוע מוצלח של השאילתה לעיל, נקבל את הפלט הבא. כאן, אנו יכולים לראות כי מַחלָקָה העמודה מכילה טופס מלא במקום טופס קצר.