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

ทำไมเราจึงควรใช้ MySQL CASE Statement?


ใช้ MySQL CASE สำหรับอาร์กิวเมนต์จำนวนคงที่

ไวยากรณ์มีดังนี้

เลือก * กรณีเมื่อ yourColumName1>yourColumName2 จากนั้น 'yourMessage1' มิฉะนั้น 'yourMessage2' จะสิ้นสุดเป็น anyAliasName จาก yourTableName

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามในการสร้างตารางมีดังนี้

mysql> สร้างตาราง CaseFunctionDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> Value1 int, -> Value2 int -> );Query OK, 0 แถวได้รับผลกระทบ (0.56 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert

แบบสอบถามมีดังนี้

mysql> แทรกลงในค่า CaseFunctionDemo(Value1,Value2) (10,20);Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงใน CaseFunctionDemo(Value1,Value2) ค่า (100,40); Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า CaseFunctionDemo (Value1,Value2) (0,20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน CaseFunctionDemo (Value1, Value2) ค่า (0,-50 );แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select

แบบสอบถามมีดังนี้

mysql> เลือก *จาก CaseFunctionDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+---------+-------+| รหัส | Value1 | ค่าที่ 2 |+----+---------+-------+| 1 | 10 | 20 || 2 | 100 | 40 || 3 | 0 | 20 || 4 | 0 | -50 |+----+----------------------+-------+4 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นคำสั่ง CASE

mysql> เลือก* กรณีที่ Value1>Value2 แล้ว 'Value1 is Greater' อื่น 'Value2 is Greater' สิ้นสุด AS Comparision จาก CaseFunctionDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+---------+---------+-------------------+| รหัส | Value1 | Value2 | การเปรียบเทียบ |+----+---------+---------+-------------------+| 1 | 10 | 20 | Value2 ยิ่งใหญ่กว่า || 2 | 100 | 40 | Value1 ยิ่งใหญ่กว่า || 3 | 0 | 20 | Value2 ยิ่งใหญ่กว่า || 4 | 0 | -50 | ค่าที่ 1 มากกว่า |+----+---------+---------+-------------------+4 แถว ในชุด (0.00 วินาที)