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

จะใช้ MySQL CASE กับเงื่อนไข OR ได้อย่างไร


นี่คือ syntax ของ MySQL CASE OR condition

เลือก yourColumnName1,.....N , CASE when yourColumnName2=0 or yourColumnName2IS NULL แล้ว 'yourMessage1'ELSE 'yourMessage2'END เป็น yourAliasNameFROM yourTableName;

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

mysql> สร้างตาราง ReservationSystems -> ( -> รหัส int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก, -> ชื่อ varchar(20), -> isSeatConfirmed tinyint -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

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

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

mysql> แทรกลงใน ReservationSystems(Name,isSeatConfirmed) values('Larry',0);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน ReservationSystems(Name,isSeatConfirmed) values('Bob',1);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน ReservationSystems (ชื่อ, isSeatConfirmed) ค่า ('Mike', NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงใน ReservationSystems (ชื่อ, isSeatConfirmed) values('David',1);Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงใน ReservationSystems(Name,isSeatConfirmed) values('Carol',0);Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน ReservationSystems(Name,isSeatConfirmed) values('James',1);Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที)

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

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

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

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

<ก่อนหน้า>+----+---------+-----------------+| รหัส | ชื่อ | isSeatConfirmed |+----+-------+-----------------+| 1 | แลร์รี่ | 0 || 2 | บ๊อบ | 1 || 3 | ไมค์ | NULL || 4 | เดวิด | 1 || 5 | แครอล | 0 || 6 | เจมส์ | 1 |+----+-------+-----------------+6 แถวในชุด (0.00 วินาที)

นี่คือ MySQL CASE ที่มีเงื่อนไข OR

mysql> เลือกชื่อ, -> กรณีเมื่อ isSeatConfirmed=0 หรือ isSeatConfirmed IS NULL แล้ว 'Your SEAT IS NOT CONFIRMED' -> มิฉะนั้น 'YOUR SEAT IS CONFIRMED' -> END AS SEATCONFIRMSTATUS -> จาก ReservationSystems;

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

<ก่อนหน้า>+-------+-----------------------------+| ชื่อ | SEATCONFIRMSTATUS |+-------+---------------------------+| แลร์รี่ | ที่นั่งของคุณไม่ได้รับการยืนยัน || บ๊อบ | ที่นั่งของคุณได้รับการยืนยันแล้ว || ไมค์ | ที่นั่งของคุณไม่ได้รับการยืนยัน || เดวิด | ที่นั่งของคุณได้รับการยืนยันแล้ว || แครอล | ที่นั่งของคุณไม่ได้รับการยืนยัน || เจมส์ | ยืนยันที่นั่งแล้ว |+-------+---------------------------+6 แถวในชุด (0.00 วินาที )