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

ใช้ MySQL Conditional GROUP BY โดยที่ไม่อยู่ในเพื่อกรองเร็กคอร์ดจากค่าคอลัมน์ที่ซ้ำกัน


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( Name varchar(40), Score int);Query OK, 0 แถวได้รับผลกระทบ (0.48 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Adam',89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Adam', 89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า DemoTable ('Chris', 89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('Bob',98); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที) mysql> แทรกลงในค่า DemoTable ('Bob',89); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

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

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

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

<ก่อนหน้า>+-------+-------+| ชื่อ | คะแนน |+-------+-------+| อดัม | 89 || อดัม | 89 || คริส | 89 || คริส | 89 || บ๊อบ | 98 || บ๊อบ | 89 |+-------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อให้บรรลุเงื่อนไข GROUP โดยใช้ NOT IN() -

mysql> เลือกชื่อที่แตกต่างจาก DemoTable โดยที่ Namenot อยู่ (เลือกชื่อจาก DemoTable โดยที่ Score <> 89);

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

<ก่อนหน้า>+-------+| ชื่อ |+-------+| อดัม || Chris |+-------+q2 แถวในชุด (0.06 วินาที)