2013-02-10 3 views
-3

필터를 만드는 방법내가 여러 열이있는 데이터베이스 테이블을

나는 사용자 지정 목록 <를 사용> 데이터베이스
에서 채 웁니다 내가 뭘 원하는 사용자에 따라 데이터베이스에서 목록에 가서 무슨 필터입니다 입력

예를 들어

나는이 같은 테이블이 있다면 모든 일치

name|phone|date|address 

사용자가 (날짜, 전화, 이름 ... 또는 모두) 모든 필터를 지정할 수 있습니다 항목 만 기준은 갈 것이다 목록에 넣으십시오.

방법이 있습니까? 데이터베이스

public List<MoviesDatabaseEntry> getAllMovies(String table) 
{ 
    List<MoviesDatabaseEntry> lists = new ArrayList<MoviesDatabaseEntry>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + table; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) 
    { 
     do { 
      MoviesDatabaseEntry list = new MoviesDatabaseEntry(); 
      list.set_id(Integer.parseInt(cursor.getString(0))); 
      list.set_title(cursor.getString(1)); 
      list.set_runtime(cursor.getString(2)); 
      list.set_rating(cursor.getDouble(3)); 
      list.set_genres(cursor.getString(4)); 
      list.set_type(cursor.getString(5)); 
      list.set_lang(cursor.getString(6)); 
      list.set_poster(cursor.getString(7)); 
      list.set_url(cursor.getString(8)); 
      list.set_director(cursor.getString(9)); 
      list.set_actors(cursor.getString(10)); 
      list.set_plot(cursor.getString(11)); 
      list.set_year(cursor.getInt(12)); 
      list.set_country(cursor.getString(13)); 
      list.set_date(cursor.getInt(14)); 


      // Adding to list 
      lists.add(list); 
     } while (cursor.moveToNext()); 
    } 

    // return list 
    db.close(); 
    cursor.close(); 
    return lists; 
} 
+0

확실히, 그러나 당신의 질문은 중요한 세부 사항이 부족합니다. 어떤 데이터베이스를 사용하고 있으며 데이터베이스 쿼리 코드는 어떻게 보이나요? – Philipp

+0

안드로이드에 sqlite, 당신은 데이터베이스 쿼리를 의미합니까? 데이터베이스에서 항목을 검색하는 방법이 있습니다. 이게 네가 말하는거야? – pedja

+0

sqlite를 사용할 때 SQL 쿼리 ("SELECT * FROM table;")가 있어야합니다. 아니면 데이터베이스에 액세스하기 위해 일부 프레임 워크를 사용하고 있습니까? 귀하의 질문에 데이터베이스에 액세스하는 코드를 추가하십시오. – Philipp

답변

2

에서 모든 항목 당신은 당신이이 줄을 구축하고 SQL 쿼리에 들어갈 항목 필터링 할 수 있습니다 반환

방법 :

String selectQuery = "SELECT * FROM " + table; 

당신이 검색 데이터 집합을 필터링하기를, WHERE 절을 추가합니다. 당신은, 예를 들어, 단지 평가가 3을 초과하는 항목 싶은 경우로 변경합니다 :

String selectQuery = "SELECT * FROM " + table + " WHERE rating > 3"; 

SQL은 많은 가능성을 제공하는 매우 강력한 언어입니다. 관계형 데이터베이스로 작업 할 때 필수적인 기술입니다. 당신이 그것을 배우고 싶은 때, 나는 당신에게 대화 형 튜토리얼 웹 사이트에 당신은 쿼리에서 특정 데이터를 가져 오기위한 데이터베이스 쿼리를 변경해야 http://sqlzoo.net/

+0

좋아, 여러 필터는 어떨까요? – pedja

+1

당신은 절 ... 컬럼 1> 1, 2 열 = 'somestring은'... – Sajmon

+0

확인, 감사 ..... – pedja

0

을 추천 할 수 있습니다.

당신이과 같이 데이터베이스에서 모든 행을 반환 하나 개의 기능 : 당신이 사용하고 여기에 getAllMovies(String table)

: 바로 지금

public List<MoviesDatabaseEntry> getSelectedMovies(String table) 
{ 
    List<MoviesDatabaseEntry> lists = new ArrayList<MoviesDatabaseEntry>(); 

    Cursor cursor = db.query(true, TABLE_NAME, new String[] { <your row names> }, 
       **check condition(as string)**, null, 
       null, null, null, null); 
    ... 
} 

:

String selectQuery = "SELECT * FROM " + table; 

이 같은 새로운 기능을 확인하십시오 특정 쿼리 문자열과 함께 필요할 때이 함수를 호출하십시오.

원하는만큼 많은 기능을 만드십시오!

관련 문제