2012-04-23 5 views
1

私はSQLの初心者です。 Android listviewにsqliteデータを表示したいと思います。テーブルの構造は次のとおりです。だから、 ListViewで表示するための効率的なクエリについて

| _id | name | data | ... 
--------------------- 
| 0 | A | abc | 
| 1 | B | def | 
| 2 | C | ghi | ... 
| 3 | D | jkl | 
| 4 | E | mno | 

、ユーザ入力[C、B、D]は、私が ユーザーのために名前とデータ列を表示したいです。例えば 、

ListViewのは

--------------------- 
    C  ghi 
--------------------- 
    B  def 
--------------------- 
    D  jkl 
--------------------- 

私は今、ArrayAdapterとCursorAdapterを使用しての間で引き裂かれています。

SELECTを3回実行し、値を配列に格納し、ArrayAdapterを使用する必要がありますか?あるいは、SELECTを使って私の要求を一度満たすことができますか?

ありがとうございます。

答えて

1

これは少し複雑ですが、1回のクエリで行うことができます。

SELECT * FROM yourTable 
ORDER BY 
    CASE name 
    WHEN 'C' THEN 0 
    WHEN 'B' THEN 1 
    WHEN 'D' THEN 2 
    END 

あなたは ofcourseのユーザの入力に応じてクエリを作成する必要があります。 Look more here

0

SELECTクエリであなたの要求を満たすことができます。クエリは次のようになります。

String query = "SELECT * FROM yourTable WHERE name IN ('C', 'B', 'D');" 
+0

注文(C、B、D)は保証されていますか?順序は重要です。 – nagoya0

+0

私はご注文についてはわかりません。注文を確認するにはADBのSQLiteで試してみてください – waqaslam

関連する問題