MySQL語句查詢重復數據是數據分析和數據清理過程中常用的操作。下面是幾種常見的查詢重復數據的SQL語句。
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) >1;
該語句中,column_name代表需要查重的字段名,table_name為數據表名。使用GROUP BY語句按照column_name字段分組,并使用COUNT(*)統計每個分組中的數據條數。最后使用HAVING語句過濾出數據條數大于1的分組,即為重復數據。
SELECT * FROM table_name WHERE column_name IN ( SELECT column_name FROM table_name GROUP BY column_name HAVING COUNT(*) >1 );
該語句中,使用子查詢查詢重復的column_name,并在外部SELECT語句中使用WHERE語句篩選出包含重復數據的所有行。
SELECT DISTINCT column_name FROM table_name AS t1 WHERE EXISTS ( SELECT * FROM table_name AS t2 WHERE t1.column_name = t2.column_name AND t1.primary_key<>t2.primary_key );
該語句中,使用DISTINCT語句篩選出不重復的column_name。在where條件中使用EXISTS語句查詢擁有相同column_name但是主鍵(primary_key)不同的行,即為重復數據。