在mysql數據庫中,有時候需要刪除表中的重復數據,但是不想刪除所有數據,只想保留其中一條,這時候就需要使用多條件刪除。
首先,使用SELECT語句查詢出重復數據的多個條件,例如:
SELECT 字段1, 字段2, 字段3, COUNT(*) AS count FROM 表名 GROUP BY 字段1, 字段2, 字段3 HAVING count >1;
這里需要注意的是,可以根據實際情況選擇需要查詢的字段和分組條件,COUNT()函數是用來統計分組后的行數。
接著,根據查詢出來的條件,使用DELETE語句進行刪除操作:
DELETE FROM 表名 WHERE 字段1 = 值1 AND 字段2 = 值2 AND 字段3 = 值3 AND 主鍵 NOT IN ( SELECT MIN(主鍵) FROM 表名 GROUP BY 字段1, 字段2, 字段3 );
這里需要注意的是,要使用NOT IN子句來保留與MIN()函數返回的主鍵值不同的行。
最后,按照實際情況使用COMMIT語句提交修改。
COMMIT;