Android sqlite:如何从特定列中检索特定数据?

sag*_*gar 8 sqlite android

我正在开发餐厅菜单应用程序.我的应用程序有一个sqlite表,其中包含以下列:

"id", "category", "item_name"
Run Code Online (Sandbox Code Playgroud)

category列的内容是string类型.表的主键是id.

我想检索特定类别的数据.

例如,我想检索类别中所有项目的项目名称,Veg然后在列表视图中显示此结果.

我尝试过不同的查询,但两者都无效.请帮我.

String vg ="Veg";
Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
           KEY_ROWID, KEY_CATEGORY, KEY_NAME,KEY_PRIZE,KEY_DESCRIPTION },
        KEY_CATEGORY + "=" + vg , null, null, null,null, null);
        if (mCursor != null) {              
                        mCursor.moveToFirst();
        }
        return mCursor;
Run Code Online (Sandbox Code Playgroud)

原始查询

String query = "SELECT * FROM todo WHERE category =" + vg ;
          Cursor  cursor = database.rawQuery(query,null);
            if (cursor != null) {
                cursor.moveToFirst();
            }
            return cursor;
Run Code Online (Sandbox Code Playgroud)

Lav*_*nya 15

试试这个:

String query = "SELECT * FROM todo WHERE category='" + vg;

Cursor  cursor = database.rawQuery(query,null);

        if (cursor != null) {
            cursor.moveToFirst();
        }
        return cursor;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这也有效。我的查询中的“=”之后缺少'。 (2认同)

Tus*_*kar 13

String query = "SELECT item_name FROM todo WHERE category =" + vg ;
Cursor  cursor = database.rawQuery(query,null);
if (cursor.moveToFirst()) {
         while (cursor.isAfterLast() != true) {
           string itemname =  cursor.getString(cursor.getColumnIndex("item_name")));
          }
}
Run Code Online (Sandbox Code Playgroud)

这里moveToFirst检查是否有符合条件的项目,然后使用while循环遍历游标.字符串itemname可以由list adaper替换以填充数据.希望这可以帮助.


Man*_*ddy 6

dbHelper = new DBHelper(getApplicationContext());
SQLiteDatabase db = dbHelper.getReadableDatabase();

Cursor cursor = db.rawQuery("select * from centuaryTbl where email='"+email+"'",null);
if (cursor.moveToFirst())
{
    do
    {
        String s1 = cursor.getString(cursor.getColumnIndex("s1"));
        String s2 = cursor.getString(cursor.getColumnIndex("s2"));
        String s3 = cursor.getString(cursor.getColumnIndex("s3"));


    }while (cursor.moveToNext());
}
Run Code Online (Sandbox Code Playgroud)