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

เราสามารถละเว้นแถวที่ซ้ำกันใน COUNT ได้หรือไม่


ได้ เราสามารถละเว้นแถวที่ซ้ำกันใน COUNT โดยใช้ DISTINCT ต่อไปนี้เป็นไวยากรณ์:

เลือกจำนวน (แยกแยะ yourColumnName) จาก yourTableName;

ใน MySQL COUNT() จะแสดงจำนวนแถว DISTINCT ใช้เพื่อละเว้นแถวที่ซ้ำกันและรับจำนวนเฉพาะแถวที่ไม่ซ้ำ

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

mysql> สร้างตาราง DemoTable ( Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(10)); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.47 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก:

mysql> แทรกลงในค่า DemoTable(FirstName) ('Larry');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable(FirstName) ('John');Query OK, 1 แถวได้รับผลกระทบ ( 0.16 วินาที) mysql> แทรกลงในค่า DemoTable (FirstName) ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable (FirstName) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า DemoTable (FirstName) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อแรก) ('Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.15 วินาที) mysql> แทรกลงในค่า DemoTable (FirstName) ('Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable (FirstName) ('Robert'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.13 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อแรก) ('Carol'); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อแรก) ('ไมค์'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.12 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนจากตารางโดยใช้คำสั่ง select:

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

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

<ก่อนหน้า>+----+-----------+| รหัส | ชื่อจริง |+----+-----------+| 1 | แลร์รี่ || 2 | จอห์น || 3 | แซม || 4 | จอห์น || 5 | จอห์น || 6 | แลร์รี่ || 7 | ไมค์ || 8 | โรเบิร์ต || 9 | แครอล || 10 | Mike |+----+-----------+10 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นข้อความค้นหาที่จะละเว้นแถวที่ซ้ำกันใน COUNT และรับจำนวนเฉพาะแถวที่ไม่ซ้ำ:

mysql> เลือกจำนวน (นามสกุลที่ชัดเจน) จาก DemoTable;

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

<ก่อนหน้า>+---------------------------+| นับ(ชื่อเฉพาะ) |+---------------------------+| 6 |+--------------------------+1 แถวในชุด (0.03 วินาที)