Home » Android » Android sqlite: how to retrieve specific data from particular column?

Android sqlite: how to retrieve specific data from particular column?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I am developing restaurant menu application. My app has a sqlite table which has these columns:

"id", "category", "item_name"

Contents of category column is of type string. Primary key of table is id.

I want to retrieve data of particular category.

For example, I want to retrieve item names of all items which are in category Veg and then display this result in list view.

I have tried following different queries but both are not working. Please help me.

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;

Raw query

String query = "SELECT * FROM todo WHERE category =" + vg ;
          Cursor  cursor = database.rawQuery(query,null);
            if (cursor != null) {
                cursor.moveToFirst();
            }
            return cursor;
How to&Answers:

try this:

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

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

        if (cursor != null) {
            cursor.moveToFirst();
        }
        return cursor;

Answer:

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

Here moveToFirst checks if there are items satisfying the criteria and then loops through cursor using while loop. The string itemname can be replaced by list adaper to populate the data. Hope this helps.

Answer:

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

Answer:

String query = "SELECT * FROM Table_Name WHERE Col_Name='name'";
Cursor cursor = mDb.rawQuery(query, null);

Answer:

Try this:

String vg ="Veg";
return database.rawQuery("SELECT * FROM subjects where " + KEY_CATEGORY + " = ?",
                            new String[]{vg});

Answer:

  String q="SELECT * FROM todo WHERE category='" + vg +"'";
    SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = null;
        cursor = db.rawQuery(q, null);
        if (cursor.moveToFirst()) {
            do {

            } while (cursor.moveToNext());

        }

Answer:

String selectQuery = "select * from " + TABLE;
        sqlDatabase = this.getWritableDatabase();

     Cursor cursor = sqlDatabase.rawQuery(selectQuery, null);

    if (cursor != null) {
        cursor.moveToFirst();
    }


    return cursor;

this will help you..

Answer:

public List<String> getAllData(String email)
{
    db = this.getReadableDatabase();
    String[] projection = {email};

    List<String> list = new ArrayList<>();

   Cursor cursor = db.query(Table_name,null,"email=?",projection,null,null,null,null);

  //  cursor.moveToFirst();

    if(cursor.moveToFirst()) {
        do {

            list.add(cursor.getString(cursor.getColumnIndex("id")));
            list.add(cursor.getString(cursor.getColumnIndex("name")));
            list.add(cursor.getString(cursor.getColumnIndex("email")));
            list.add(cursor.getString(cursor.getColumnIndex("password")));
           // cursor.moveToNext();

        } while (cursor.moveToNext());
    }
    return list;
}

Answer:

here you can pass value for filter on

   public ArrayList<PlayListModel> getPlaylist(String playlistName) {
    SQLiteDatabase db = this.getReadableDatabase();
    ArrayList<PlayListModel> obj = new ArrayList<PlayListModel>();
    Cursor cursor = db.query(TABLE_PLAYLIST, new String[] { KEY_ID,
                    KEY_TITLE, KEY_SINGER , KEY_PATH , KEY_PLAYLISTNAME , KEY_DUR }, KEY_PLAYLISTNAME+ "=?",
            new String[] { playlistName }, null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    PlayListModel contact = new PlayListModel
            (cursor.getString(1),
                    cursor.getString(2),cursor.getString(3),
                    cursor.getString(4),cursor.getString(5));
    obj.add(contact);
    // return contact
    return obj;
}