ในการนับจำนวนโหวตบวกและลบ คุณสามารถใช้คำสั่ง CASE พร้อมกับฟังก์ชันรวม SUM()
ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, Vote int); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.70 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable(โหวต) (-10); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า DemoTable (โหวต) (100) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที) mysql> แทรกลงในค่า DemoTable (โหวต) (45); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable (โหวต) (-6); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรก ลงในค่า DemoTable(Vote) (-1000); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable (โหวต) (450); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----+-------+| รหัส | โหวต |+---+-------+| 1 | -10 || 2 | 100 || 3 | 45 || 4 | -6 || 5 | -1000 || 6 | 450 |+----+-------+6 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อนับจำนวนโหวตบวกและลบ -
mysql> เลือกผลรวม (กรณีที่โหวต> 0 แล้ว 1 อย่างอื่น 0 สิ้นสุด) เป็น Number_Of_Positive_Votes,sum (กรณีที่โหวต <0 แล้ว 1 อย่างอื่น 0 สิ้นสุด) เป็น Number_Of_Negative_Votesfrom DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+--------------------------+------------------- --------+| Number_Of_Positive_โหวต | Number_Of_Negative_Votes |+--------------------------+-------------------------- ------+| 3 | 3 |+--------------------------+-------------------------- ------+1 แถวในชุด (0.00 วินาที)