2012-04-23 2 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는,이 I 사용자 주문 네임 데이터 열을 표시 할. 예를 들어 ,

의 ListView는

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

지금은 ArrayAdapter와와 CursorAdapter를 사용하는 사이에 찢겨 있어요.

SELECT를 3 번하고 배열에 값을 저장하고 ArrayAdapter를 사용해야합니까? 아니면 한 번 SELECT로 내 요구를 충족시킬 수 있습니까? 사전에

감사합니다.

답변

1

약간 복잡 할 수 있지만 단일 쿼리로 수행 할 수 있습니다.

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

당신은 당연히 사용자 입력에 따라 쿼리를 구성해야합니다. 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

관련 문제