2012-09-14 91 views
3

我該如何去查詢多個選擇參數?例如,下面是我的數據庫是如何格式化在SQLite數據庫查詢中設置多個選擇參數

my database

下面是我用只是一個seletion ARG搜索代碼:

public Cursor getType(String type) throws SQLException 
{ 
    Cursor mCursor = 
      db.query(true, DB_TABLE, new String[] { 
        KEY_ROWID, 
        KEY_ALCOHOL, 
        KEY_TYPE, 
        KEY_BRAND, 
        KEY_PRICE 
        }, 
        KEY_TYPE + "=?", 
        new String[] { type }, 
        null, 
        null, 
        null, 
        null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 
} 

但是,爲key_type這只是搜索,我將如何設置它是否可以通過KEY_TYPE,KEY_ALCOHOL和KEY_PRICE進行搜索?

回答

6

想通了!感謝@Rajendra給我一些代碼來構建!你只能添加字符串到選擇參數,所以我這樣做:

public Cursor getTest(String alcohol, String type, long price) throws SQLException 
{ 
    Cursor mCursor = 
      myDataBase.query(true, DB_TABLE, new String[] { 
        KEY_ROWID, 
        KEY_ALCOHOL, 
        KEY_TYPE, 
        KEY_BRAND, 
        KEY_PRICE 
        }, 
        KEY_ALCOHOL + "=?" + " AND " + KEY_TYPE + "=?" + " AND " + KEY_PRICE + "<=" + price, 
        new String[] { alcohol, type}, 
        null, 
        null, 
        null, 
        null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 
} 

它的工作原理!

12

這可能會幫助你

public Cursor getType(String type) throws SQLException 
    { 
    Cursor mCursor = 
     db.query(true, DB_TABLE, new String[] { 
       KEY_ROWID, 
       KEY_ALCOHOL, 
       KEY_TYPE, 
       KEY_BRAND, 
       KEY_PRICE 
       }, 
       KEY_TYPE + "=?" + " AND " + KEY_ALCOHOL + "=?" " AND " + KEY_PRICE + "=?", 

       new String[] { type,alcohol,price }, 
       null, 
       null, 
       null, 
       null); 
if (mCursor != null) { 
    mCursor.moveToFirst(); 
} 
return mCursor; 
} 
+0

唯一的問題是這是KEY_PRICE是一個int,所以我不能把int放入String []中。如果我嘗試將價格作爲字符串傳遞,它不會返回任何內容 – Hockeyman271