[英]How to find records having specific repetitions mysql
我有一張包含 800k 條記錄的大表。 表的結構如下:
Table: chapters
Columns: Id chapter author pages book_id
根據以下模式,一些記錄有重復:
id chapter author pages book_id
64478 Veronica Vasterling & Silvia Stoller 1665112051456
64479 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen 1665112051456
64480 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües 1665112051456
64481 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling 1665112051456
64482 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding 1665112051456
64483 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding Gabrielle Hiltmann 1665112051456
64484 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding Gabrielle Hiltmann Silvia Stoller 1665112051456
64485 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding Gabrielle Hiltmann Silvia Stoller Kelly Oliver 1665112051456
64486 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding Gabrielle Hiltmann Silvia Stoller Kelly Oliver Sara Heinämaa 1665112051456
64487 Veronica Vasterling & Silvia Stoller Debra B. Bergoffen Christina Schües Veronica Vasterling Helen A. Fielding Gabrielle Hiltmann Silvia Stoller Kelly Oliver Sara Heinämaa Annemie Halsema 1665112051456
有什么辦法可以找到並刪除此類記錄的整個 book_id 嗎?
如果單獨使用 mysql 還不夠,那么也歡迎使用 php 腳本中的任何內容。
感謝您的時間和考慮。
要刪除整個重復的 book_id ,您可以使用此查詢:
delete from chapters where book_id in
(select book_id from chapters group by book_id having count(*) > 1);
如果你想保留最后一個 book_id 並刪除 rest 你可以使用這個代碼:
delete from chapters where
id not in (select max(id) from chapters group by book_id );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.