2012-09-14 88 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