3D-kreativ
3D-kreativ

Reputation: 9299

How to use SQL to search for a value?

I'm trying to learn how to use database in Android and so far I have learned how to fetch all rows of data in the table, but I'm not sure how I'm going to use a SQL query to search for a value that is equal to the string value I pass to the method below?

I wonder if someone could add some simple code how to query the database with SQL in my code? Preciate the help! Thanks!

Something like this: String query = "Select * from DB_TABLE where TABLE_IMAGE_PATH = filePath";

// Read from database
public String readContacts(String filePath){

    String[] columns = new String[]{TABLE_ID, TABLE_IMAGE_PATH, TABLE_CONTACT_NAME, TABLE_CONTACT_NUMBER, TABLE_CONTACT_ADDRESS};
    Cursor c = db.query(DB_TABLE, columns, null, null, null, null, null);

    int id = c.getColumnIndex(TABLE_ID);
    int imagePath = c.getColumnIndex(TABLE_IMAGE_PATH);
    int name = c.getColumnIndex(TABLE_CONTACT_NAME);
    int number = c.getColumnIndex(TABLE_CONTACT_NUMBER);
    int address = c.getColumnIndex(TABLE_CONTACT_ADDRESS);

    String result = "";

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
    result = result + c.getString(id) + " " + c.getString(imagePath) + " " + c.getString(name) + " " + c.getString(number) + " " + c.getString(address);
    }

    return result;
}

Upvotes: 0

Views: 134

Answers (2)

Poovizhirajan N
Poovizhirajan N

Reputation: 1263

You can search Query

its for exact string

String query = "Select * from DB_TABLE where TABLE_IMAGE_PATH  like  '"+filePath+"';

if value contains your string

String query = "Select * from DB_TABLE where TABLE_IMAGE_PATH  like  '%"+filePath+"%';

if value needs from last

String query = "Select * from DB_TABLE where TABLE_IMAGE_PATH  like  '%"+filePath+"';

if value needs from first

String query = "Select * from DB_TABLE where TABLE_IMAGE_PATH  like  '"+filePath+"%';

put these

SQLiteDatabase dbR = this.getReadableDatabase();
    Cursor cur = dbR.rawQuery("query", null);
            return cur

using this cursor you can get value.

Upvotes: 3

Mr.Me
Mr.Me

Reputation: 9276

you can do that easily by modifying your query code to:

        String[] columns = new String[]{TABLE_ID, TABLE_IMAGE_PATH, TABLE_CONTACT_NAME,   TABLE_CONTACT_NUMBER, TABLE_CONTACT_ADDRESS};

        Cursor cursor = db.query(ANSWERS_TABLE,
            columns,
            columns[1] + " = ?", new String[]{filePath}, null, null, null);

Take a look here : SQLiteDataBase Query

Upvotes: 1

Related Questions