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

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


ใช้ CASE WHEN สำหรับสิ่งนี้ใน MySQL และตั้งค่าเงื่อนไขของ CASE ภายในเมธอด COUNT() ที่จะนับ ให้เราสร้างตารางก่อน -

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

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

mysql> แทรกลงในค่า DemoTable1374(Name,Score)('Chris',45);Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable1374(Name,Score)('David',78);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงใน DemoTable1374 (ชื่อคะแนน) ค่า ('Bob',45); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน DemoTable1374 (ชื่อ, คะแนน) values('Mike',75);ตกลง, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงใน DemoTable1374(ชื่อ,คะแนน) ค่า('Carol',45);แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า DemoTable1374(ชื่อ คะแนน) ('Adam',89); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

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

ต่อไปนี้เป็นการสอบถาม CASE WHEN เพื่อกำหนดเงื่อนไขและนับ -

mysql> เลือกจำนวน (กรณีที่คะแนน =45 จากนั้นอีก 1 รายการเป็น NULL) เป็น SpecificCondition จาก DemoTable1374

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------------+| เงื่อนไขเฉพาะ |+-------------------+| 3 |+-------------------+1 แถวในชุด (0.00 วินาที)