首頁 >資料庫 >mysql教程 >如何從 MySQL 表(5.0 以上版本)中刪除重複行?

如何從 MySQL 表(5.0 以上版本)中刪除重複行?

Barbara Streisand
Barbara Streisand原創
2024-12-25 20:20:14644瀏覽

How to Delete Duplicate Rows from a MySQL Table (Versions 5.0 and Above)?

從MySQL 表中刪除重複項

在MySQL 中,您可能會遇到這樣的場景:您需要從表中刪除重複行,同時確保透過ID 列進行唯一識別。雖然提供的查詢對 MySQL 5.7 及更高版本有效,但它在 5.0 等早期版本中不起作用。

要在 MySQL 5.0 中實現所需的行為,您可以使用 IN 運算子而不是 = 重寫查詢用於將 ID 與子查詢結果集進行比較。此外,您無法直接從相同查詢中的子查詢修改表。

要解決此限制,您可以執行單獨的 SELECT 和 DELETE 查詢,或使用巢狀子查詢為內部子查詢的結果設定別名。以下是巢狀子查詢方法的範例:

DELETE FROM posts
WHERE id IN (
    SELECT * FROM (
        SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
    ) AS p
)

或者,依照Mchl 的建議,您可以使用聯結來刪除重複行,方法是根據ID 列將資料表與其自身連結起來,並使用HAVING子句來刪除重複行。過濾重複的 ID。

以上是如何從 MySQL 表(5.0 以上版本)中刪除重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn