從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中文網其他相關文章!