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

จะลบระเบียนที่ซ้ำกันทั้งหมดในตาราง MySQL ได้อย่างไร


หากต้องการลบระเบียนที่ซ้ำกันออกจากตาราง เราสามารถใช้คำสั่ง DELETE เรามาสร้างตารางกันเถอะ

mysql> สร้างตาราง DuplicateDeleteDemo -> ( -> id int, -> name varchar(100) -> );Query OK, 0 แถวได้รับผลกระทบ (0.60 วินาที)

การแทรกระเบียนลงในตาราง "DuplicateDeleteDemo":เราได้เพิ่ม "John" เป็นระเบียนที่ซ้ำกัน 3 ครั้งในที่นี้

mysql> แทรกลงในค่า DuplicateDeleteDemo (1,'John');Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า DuplicateDeleteDemo (1,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า DuplicateDeleteDemo (2,'Johnson'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DuplicateDeleteDemo (1,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ที่มีระเบียนที่ซ้ำกัน

<ก่อนหน้า>+------+---------+| id | ชื่อ |+------+---------+| 1 | จอห์น || 1 | จอห์น || 2 | จอห์นสัน || 1 | John |+------+---------+4 แถวในชุด (0.00 วินาที)

ในผลลัพธ์ข้างต้น เรามี 4 ระเบียนในตาราง โดย 3 ระเบียนซ้ำกัน

หากต้องการลบบันทึกที่ซ้ำกัน ude DELETE

mysql> ลบจาก DuplicateDeleteDemo โดยที่ id=1;Query OK ได้รับผลกระทบ 3 แถว (0.19 วินาที)

หากต้องการตรวจสอบว่าบันทึกถูกลบไปแล้วหรือไม่ ให้เราแสดงระเบียนทั้งหมดอีกครั้ง

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

ผลลัพธ์ต่อไปนี้แสดงว่าระเบียนที่ซ้ำกันทั้งหมดถูกลบไปแล้ว

<ก่อนหน้า>+------+---------+| id | ชื่อ |+------+---------+| 2 | Johnson |+------+---------+1 แถวในชุด (0.00 วินาที)