【问题标题】:Setting multiple Selections args in SQLite database query在 SQLite 数据库查询中设置多个选择参数
【发布时间】:2012-09-07 12:39:51
【问题描述】:

我将如何查询多个选择 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 搜索?

【问题讨论】:

    标签: android sqlite multipleselection


    【解决方案1】:

    这可能对你有帮助

      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;
    }
    

    【讨论】:

    • 唯一的问题是 KEY_PRICE 是一个 int,所以我不能将一个 int 放入 String[]。如果我尝试将价格作为字符串传递,它不会返回任何内容
    【解决方案2】:

    想通了!!感谢@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;
    }
    

    而且它有效!

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      相关资源
      最近更新 更多