MySQL是一個非常流行的開源關系型數據庫管理系統。在MySQL中,可以使用DELETE語句來刪除表中的數據,可以使用DISTINCT關鍵字來去重,但是如果需要同時按照條件刪除重復數據該怎么辦呢?
可以使用以下語句來按條件刪除重復數據:
DELETE FROM 表名 WHERE 列名 NOT IN ( SELECT MIN(列名) FROM 表名 GROUP BY 列名);
其中,表名和列名需要根據實際情況進行替換。
補充說明:
該語句中,子查詢是選出每組重復數據中最小的那個數據,然后在WHERE子句中將這些最小的數據保留下來。因此,刪除的就是每組重復數據中除了最小值之外的所有數據。
如果要按照多列進行去重,可以在GROUP BY子句中指定列名,如下:
DELETE FROM 表名 WHERE (列名1, 列名2) NOT IN ( SELECT MIN(列名1), MIN(列名2) FROM 表名 GROUP BY 列名1, 列名2);
這樣,就可以按照列名1和列名2的組合進行去重了。
上一篇mysql按條件插入數據
下一篇mysql按條件刪除行