在 MySQL 中,有時候需要查詢的列中可能存在重復的值,但是我們只需要一個不重復的值列表。下面介紹幾種查詢不重復的字段值的方法。
SELECT DISTINCT column_name FROM table_name;
使用 DISTINCT 關鍵字可以在查詢結果中只保留不重復的值,可以簡單快捷地實現查詢不重復的字段值。對于列中存在 NULL 值的情況,DISTINCT 也會將 NULL 視為一個值進行去重。
SELECT column_name FROM table_name GROUP BY column_name;
使用 GROUP BY 可以按照指定列對結果進行分組,只返回各組中的第一個值。而由于 GROUP BY 對結果進行了聚合操作,因此效率相對較高。但是,需要注意如果查詢的列中存在 NULL 值,GROUP BY 會將 NULL 視為一個分組。
SELECT column_name FROM table_name WHERE 1 GROUP BY column_name;
在 GROUP BY 語句中添加 WHERE 1 可以顯式地啟用分組。如果不添加該語句,MySQL 會根據查詢的表的某些特性自動添加分組,會導致查詢結果不準確。