Home > Software design >  How can I search all columns of a table in Android Studio using SQL database
How can I search all columns of a table in Android Studio using SQL database

Time:04-22

I have an Android app with a SQL database that has 4 columns. I would like to search all 4 columns in the database however I can only get 1 to be searched. I'm not quite sure on how to get it to search all 4 columns.

All 4 Columns are displayed but I can only search one. I can not seem to get it to search all 4 columns.

the code I'm using to get it to search one column is

@SuppressLint("Range")
    public List<Data> getDataByVARIETY (String VARIETY) {
        variety = VARIETY;
        SQLiteDatabase db = getReadableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

        String[] sqlSelect = {"VARIETY", "COMMODITY", "PLU", "BOTANICAL"};
        String tableName = "data";

        qb.setTables(tableName);
        //This will query : Select * from Data where Variety %PATTERN%"
        Cursor cursor = qb.query(db, sqlSelect, "VARIETY LIKE ?", new String[]{"%"   VARIETY   "%"}, null, null, null);
        List<Data> result = new ArrayList<>();
        if (cursor.moveToFirst()) {
            do {
                Data data = new Data();
                data.setCOMMODITY(cursor.getString(cursor.getColumnIndex("COMMODITY")));
                data.setVARIETY(cursor.getString(cursor.getColumnIndex("VARIETY")));
                data.setPLU(cursor.getString(cursor.getColumnIndex("PLU")));
                data.setBOTANICAL(cursor.getString(cursor.getColumnIndex("BOTANICAL")));

                result.add(data);
            } while (cursor.moveToNext());
        }
        return result;
}

CodePudding user response:

so all i had to do was change this

 qb.setTables(tableName);
        //This will query : Select * from Data where Variety %PATTERN%"
        Cursor cursor = qb.query(db, sqlSelect, "VARIETY LIKE ?", new String[]{"%"   VARIETY   "%"}, null, null, null);

to this

qb.setTables(tableName);
        //This will query : Select * from Data where Variety %PATTERN%"
        String conditions = "COMMODITY LIKE ? OR PLU LIKE ? OR VARIETY LIKE ?";
        String par;
        par = "%" COMMODITY "%";
        Cursor cursor = db.query(tableName, sqlSelect, conditions, new String[]{par, par, par}, null, null, null);
  • Related