2012-05-08 66 views
7

我試圖理解這個查詢做究竟是什麼:MySQL根據一行的唯一性選擇DISTINCT多列?

SELECT DISTINCT `state`, `state_name` FROM `geo` ORDER BY `state_name` ASC 

所有我想要做的是選擇2列(狀態和STATE_NAME),我想只有那些沒有重複值唯一行國家領域。我不關心在state_name字段中是否有重複的值。

我的查詢檢查兩個列的唯一性或只是狀態?

回答

18

DISTINCT將只返回重複行,所以:

是我的查詢檢查的唯一兩列或只是狀態呢?

這兩列

你也可以切換到GROUP BY來代替。

SELECT `state`, `state_name` FROM `geo` group by 'state', 'state_name' ORDER BY `state_name` ASC 
+0

感謝它的工作。 :) – Addy

1

它正在檢查state和state_name的唯一組合。獨特的操作包括在您的選擇列表中的所有列。

要想僅包括獨有的狀態值,只需選擇不同的狀態