2011-08-02 9 views
2

私のsqliteデータベースでは、imageという名前のテーブルに3つのフィールドlabel、url、およびindexが含まれています。 データベースからデータを取得するために、次のコードを書きました: "SELECT DISTINCT(label)、index from image;"私のテーブルには「Cat」というラベルが3回あります。このコードによれば、コードは自分のデータベースから「Cat」を1つだけ表示する必要があります。しかし、それは動作しません。 3つの「Cat」ラベルをすべて取り出します。それはなぜ起こるのですか?可能な解決策を見つけるのを手伝ってください。インデックスフィールドは、3つの「Cat」ラベルすべてで異なります。sqliteデータベースクエリで問題が発生しました。別のクエリが機能しません

答えて

1

DISTINCTキーワードは関数ではありません、それは重複行は結果から削除する必要があることを指定します。そして、

簡単なSELECTは、SELECT DISTINCTの場合あなたが何

を返される前に、行が結果行のセットから を除去して、重複達成しようとすると、おそらくラベル別にグループ化する必要があります:

SELECT label, index FROM image GROUP BY label 
0

これを試してみてください:

select label, index from image 
where label in (select distinct label from image) 
関連する問題