ใช้คำสั่ง CASE สำหรับสิ่งนี้ ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable -> ( -> StudentMarks int, -> isValid tinyint(1) -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.68 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable (45,0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable (78,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.26 วินาที) mysql> แทรก ลงในค่า DemoTable (45,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.31 วินาที) mysql> แทรกลงในค่า DemoTable (78,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable (45, 0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable (82,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable (62,1); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
ผลลัพธ์
<ก่อนหน้า>+-------------+---------+| StudentMarks | isValid |+-------------+---------+| 45 | 0 || 78 | 1 || 45 | 1 || 78 | 1 || 45 | 0 || 82 | 1 || 62 | 1 |+--------------+---------+7 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อเลือกการนับในสองเงื่อนไขแยกกัน -
mysql> เลือก StudentMarks, -> sum(case -> when StudentMarks=45 -> then case when isValid =1 then 1 else 0 end -> else 1 end -> ) AS Freq -> from DemoTable -> group by StudentMarks;