8

私はこのクエリが正確に何をするのかを理解しようとしています:

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

私がやろうとしているのは、2つの列(stateとstate_name)を選択することだけです。stateフィールドに重複する値がない一意の行のみが必要です。state_nameフィールドに重複する値があるかどうかは関係ありません。

私のクエリは両方の列の一意性をチェックしていますか、それとも状態だけですか?

4

2 に答える 2

18

DISTINCTは個別の行のみを返すため、次のようになります。

私のクエリは両方の列の一意性をチェックしていますか、それとも状態だけですか?

両方の列

代わりにGROUPBYに切り替えることもできます。

SELECT `state`, `state_name` FROM `geo` group by 'state', 'state_name' ORDER BY `state_name` ASC 
于 2012-05-08T01:54:17.067 に答える
1

stateとstate_nameの一意の組み合わせをチェックしています。Distinctは、選択リストに含まれるすべての列で機能します。

一意の状態値のみを含めるには、個別の状態を選択するだけです

于 2012-05-08T01:51:55.950 に答える