Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL CASE ทำงานอย่างไร


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;

ผลลัพธ์

<ก่อนหน้า>+-----------------+| ผลลัพธ์ |+-----------------+| เขาชื่อจอห์น || เขาชื่อแซม |+--------------------------------+2 แถวในชุด (0.00 วินาที)