在MySQL中,我們可以使用多種方法查詢有重復的數據。下面我將介紹其中兩種方法。
方法一:使用GROUP BY和HAVING
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) >1;
上述代碼中,SELECT column_name, COUNT(*)
將會得到每個column_name
的數量。接著,GROUP BY
按照這個數量去分組。而HAVING COUNT(*) >1
表示只查詢數量大于1的組,即有重復的數據。
方法二:使用DISTINCT和INNER JOIN
SELECT DISTINCT t1.column_name FROM table_name t1 INNER JOIN ( SELECT column_name FROM table_name GROUP BY column_name HAVING COUNT(*) >1 ) t2 ON t1.column_name = t2.column_name;
上述代碼中,第一個 SELECT 語句中的DISTINCT
將會去除重復數據。接著,使用INNER JOIN
去連接一個子查詢,這個子查詢將會得到有重復的column_name
。最終,得到的就是有重復的數據。