我想刪除基於兩列的重複行,但需要保持1行所有這些行。刪除重複的行,並需要保持其中的所有人在mysql
重複行可以多於兩排等,
ID NAME PHONE
-- ---- ----
1 NIL 1234
2 NIL 1234
3 NIL 1234
4 MES 5989
我想從上面3刪除任何的2行,並保持1行。
我想刪除基於兩列的重複行,但需要保持1行所有這些行。刪除重複的行,並需要保持其中的所有人在mysql
重複行可以多於兩排等,
ID NAME PHONE
-- ---- ----
1 NIL 1234
2 NIL 1234
3 NIL 1234
4 MES 5989
我想從上面3刪除任何的2行,並保持1行。
DELETE a
FROM tableA a
LEFT JOIN
(
SELECT MIN(ID) ID, Name, Phone
FROM TableA
GROUP BY Name, Phone
) b ON a.ID = b.ID AND
a.NAme = b.Name AND
a.Phone = b.Phone
WHERE b.ID IS NULL
已執行delete語句後,執行該列上的唯一約束,所以你不能再插入重複的記錄,
ALTER TABLE TableA ADD CONSTRAINT tb_uq UNIQUE (Name, Phone)
歡迎您':D' – 2013-03-22 05:23:33
DELETE
FROM Table
WHERE Table.id NOT IN (
SELECT MIN(idTable) idtable
FROM idTable
GROUP BY name, phone)
您好馬特, 我用你的查詢在MySQL這樣 'DELETE FROM 表名 WHERE tablename.ID NOT IN(在FROM子句您不能指定目標表 '時區' 的更新 - SELECT MIN(ID) FROM表名 GROUP BY姓名,電話)' 但我得到下面的錯誤我, #1093 – Neel 2013-03-22 03:48:00
另外,設計是有缺陷的...如果NIL 1234只應該出現一次,你應該使主鍵或至少使裝配工,檢查了所有腦幹讓你的數據庫保持一致 – ITroubs 2013-03-21 13:18:51