溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL 中如何刪除單表重復(fù)記錄

發(fā)布時間:2021-08-02 16:23:07 來源:億速云 閱讀:145 作者:Leah 欄目:MySQL數(shù)據(jù)庫

本篇文章給大家分享的是有關(guān)MySQL 中如何刪除單表重復(fù)記錄,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。



1、創(chuàng)建表test001

點擊(此處)折疊或打開

  1. CREATE TABLE `test001` (

  2.   `id` bigint(20) NOT NULL AUTO_INCREMENT,

  3.   `name` varchar(20) NOT NULL,

  4.   PRIMARY KEY (`id`)

  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

2、隨機寫入數(shù)據(jù)導(dǎo)表test001中
    insert into test001 (name) values('A');
    insert into test001 (name) values('B');
    insert into test001 (name) values('C');
    insert into test001 (name) values('d');

3、查詢整表數(shù)據(jù)

點擊(此處)折疊或打開

  1. select * from test001;

  2. +----+------+

  3. | id | name |

  4. +----+------+

  5. | 1 | A |

  6. | 2 | A |

  7. | 3 | A |

  8. | 4 | A |

  9. | 5 | A |

  10. | 6 | A |

  11. | 7 | A |

  12. | 8 | A |

  13. | 9 | B |

  14. | 10 | B |

  15. | 11 | B |

  16. | 12 | B |

  17. | 13 | B |

  18. | 14 | B |

  19. | 15 | C |

  20. | 16 | C |

  21. | 17 | C |

  22. | 18 | C |

  23. | 19 | d |

  24. | 20 | d |

  25. | 21 | d |

  26. | 22 | d |

  27. | 23 | d |

  28. +----+------+

  29. 23 rows in set (0.00 sec)

4、執(zhí)行SQL刪除重復(fù)記錄,只保留id最小的記錄

DELETE  FROM Test001  WHERE  id NOT IN (

SELECT  minid  FROM

(SELECT  min(id) AS minidFROM  Test001

GROUP BYname) b

);

點擊(此處)折疊或打開

  1. >DELETE

  2.     -> FROM

  3.     -> Test001

  4.     -> WHERE

  5.     -> id NOT IN (

  6.     -> SELECT

  7.     -> minid

  8.     -> FROM

  9.     -> (

  10.     -> SELECT

  11.     -> min(id) AS minid

  12.     -> FROM

  13.     -> Test001

  14.     -> GROUP BY

  15.     -> name

  16.     -> ) b

  17.     -> );

  18. Query OK, 19 rows affected (0.00 sec)


  19. (root@localhost:mysql.sock) [test]>select * from test001;

  20. +----+------+

  21. | id | name |

  22. +----+------+

  23. | 1 | A |

  24. | 9 | B |

  25. | 15 | C |

  26. | 19 | d |

  27. +----+------+

  28. 4 rows in set (0.00 sec)

5、執(zhí)行后的結(jié)果,重復(fù)記錄都刪除了
    

點擊(此處)折疊或打開

  1. (root@localhost:mysql.sock) [test]>select * from test001;

  2. +----+------+

  3. | id | name |

  4. +----+------+

  5. | 1 | A |

  6. | 9 | B |

  7. | 15 | C |

  8. | 19 | d |

  9. +----+------+

  10. 4 rows in set (0.00 sec)

以上就是MySQL 中如何刪除單表重復(fù)記錄,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI