我想刪除使用SQL的重複行,同時留下其中一行。如何刪除SQL中的重複行?
我想刪除重複的行從被稱爲表「A」由的表:
A.AID, A.BID, A.AName, A.AType, A.APrice.
在這個表中我有很多的所有數據的重複行正好相隔相同來自A.ID.
我想創建一個查詢,它將查找重複項,然後刪除重複項,確保其中一行被留下。我正在使用phpMyAdmin和MySQL。
我想刪除使用SQL的重複行,同時留下其中一行。如何刪除SQL中的重複行?
我想刪除重複的行從被稱爲表「A」由的表:
A.AID, A.BID, A.AName, A.AType, A.APrice.
在這個表中我有很多的所有數據的重複行正好相隔相同來自A.ID.
我想創建一個查詢,它將查找重複項,然後刪除重複項,確保其中一行被留下。我正在使用phpMyAdmin和MySQL。
DELETE FROM member
WHERE id IN (SELECT *
FROM (SELECT id FROM member
GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
) AS A
);
DELETE FROM
YourTable
WHERE
AID NOT IN (SELECT
MAX(AID)
FROM
YourTable
GROUP BY
BID ,
AName ,
AType ,
APrice);
考慮下面的查詢,這將刪除所有重複的行和阻止任何未來的重複行。
ALTER IGNORE TABLE A ADD UNIQUE INDEX index_name (A.AID, A.BID, A.AName, A.AType, A.APrice);
雖然也許不是最優雅的解決方案......如果您可以找到重複的行,您可以簡單地使用「限制」子句刪除它們。例如,如果您在給定某些條件的情況下找到3個重複記錄,則「從表中刪除(SOMETHING)限制2」。這將刪除其中的兩個,離開第三個。 – DragonYen
'ALTER IGNORE TBLNAME ADD UNIQUE_INDEX'可能是最快的方法。 – Daan
這個問題已經回答了幾十次。這是一個。 http://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql –