MySQL CASE ทำงานเหมือนกับคำสั่ง switch ไวยากรณ์ของ CASE มีดังนี้ −
กรณีที่ 1 - เปรียบเทียบคำสั่ง
กรณีที่ anyCompareStatement จากนั้น value1 เมื่อ anyCompareStatement แล้ว value2..Nelse anyValueend เป็น anyVariableName;
กรณีที่ 2 – เงื่อนไข
ไวยากรณ์ที่สองสามารถใช้ได้เมื่อคุณเลือกคอลัมน์เดียวเท่านั้น ไวยากรณ์มีดังนี้ −
case yourColumnName when condition1 then result1 when condition1 then result2..Nelse anyValueend;
เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราใช้คำสั่ง select
กรณีที่ 1
แบบสอบถามมีดังต่อไปนี้ −
mysql> เลือก -> กรณีเมื่อ 45 <55 ดังนั้น '55 มากกว่า 45' -> เมื่อ 10!=11 ดังนั้น '10 ไม่เท่ากับ 11' -> อื่น 'กรณีเริ่มต้น' -> สิ้นสุดเป็นผลลัพธ์
ผลลัพธ์
<ก่อนหน้า>+-----------------------+| ผลลัพธ์ |+-----------------------+| 55 มากกว่า 45 |+---------------------- +1 แถวในชุด (0.00 วินาที)กรณีที่ 2
ให้เราสร้างตารางเพื่อทำความเข้าใจไวยากรณ์ที่สอง
แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง CaseDemo -> ( -> Id int, -> Name varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.93 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังต่อไปนี้ −
mysql> แทรกลงในค่า CaseDemo (1,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงในค่า CaseDemo (2,'Sam'); Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที )
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังต่อไปนี้ −
mysql> เลือก *จาก CaseDemo;
ผลลัพธ์
<ก่อนหน้า>+------+------+| รหัส | ชื่อ |+------+------+| 1 | จอห์น || 2 | แซม |+------+------+2 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามที่สองของ CASE ที่สามารถใช้เพื่อทำงานกับค่าเดียวเท่านั้น แบบสอบถามมีดังต่อไปนี้ −
mysql> เลือกชื่อเคส-> เมื่อ 'John' แล้ว 'ชื่อของเขาคือ John'-> เมื่อ 'Sam' จากนั้น 'ชื่อของเขาคือ Sam'-> else -1-> ลงท้ายด้วย Result-> จาก CaseDemo;