4

重複の可能性:
重複結果
のインタビュー - 重複エントリの検出/削除

1 つの列を持つテーブルを返す SQL クエリがあります。

返されるデータは重複している可能性があります。たとえば、私のクエリは次のようになります。

SELECT item FROM myTable WHERE something = 3

返されるデータは次のようになります。

item
-----
2
1
4
5
1
9
5

私の質問は、クエリから重複したアイテムを削除する方法ですか?

つまり、これらの結果を取得したい:

item
-----
2
1
4
5
9

テーブル内の行を変更または削除したくないことに注意してください。そのクエリで重複を削除したいだけです。

どうやってするか?

4

4 に答える 4

16
SELECT DISTINCT item FROM myTable WHERE something = 3
于 2012-08-03T22:35:42.090 に答える
6

前述のように、distinctキーワードは重複する行 (行の列に同じ値がある場合) を結果セットから除外します。

ただし、適切に設計されたデータベースに対する自明ではないクエリの場合、結果セットに重複する行が存在し、select distinctまたはを介してそれらを削除するselect ... group byことは、ほとんどの場合、不適切または不適切な結合基準、または不足を示す「コードの匂い」です。テーブル間の関係に存在するカーディナリティの理解。

私がコードをレビューしている場合、select distinctまたはgroup by明らかな必要性がない場合は、含まれているクエリにフラグが立てられ、そのクエリは細かい櫛で処理されます。

于 2012-08-03T22:55:17.083 に答える
2

DISTINCTキーワードをクエリに追加する必要があります。
このキーワードは非常に標準的で、すべての主要なデータベースでサポートされています。

ここでDISTINCT参照を参照してください

于 2012-08-03T22:38:34.687 に答える
1

SELECT DISTINCT item FROM myTable WHERE something = 3

あなたはちょうどdistinctを使用する必要があります

于 2012-08-03T22:37:19.213 に答える