将sqlite与string进行比较

时间:2012-10-16 16:52:57

标签: android sql

我在我的SQL数据库中保存了数据。

现在我想将这个保存的数据与字符串

进行比较

这样的事情:

String example = "house";

现在我想检查,如果“house”已经在数据库中,带有if子句

类似这样的事情

if ( example == [SQL Data] ) {
}
else {
}

现在,我该如何做到这一点?

4 个答案:

答案 0 :(得分:8)

执行类似

的操作
String sql = "SELECT * FROM your_table WHERE your_column = '" + example + "'";
Cursor data = database.rawQuery(sql, null);

if (cursor.moveToFirst()) {
// record exists
} else {
// record not found
}

here

被盗

答案 1 :(得分:1)

将我对Sharath评论的回复写成答案,因为代码会在评论中搞砸:

不是说你的回答是错的,但是从表中选择所有内容并在数据库之外迭代它是非常低效的,并且它不应该被建议作为问题的答案,因为这样做是一个糟糕的习惯。总的来说。

我通常这样做的方式,如果我想查看数据库中是否存在某些记录,我确实喜欢这样。不会争论在正常的循环中使用do-while,因为这是关于不同的偏好;)

String query = "SELECT * FROM table_name WHERE column_name=" + the_example_string_to_find;              
Cursor cursor = db.rawQuery(query, null);

if(cursor.getCount() > 0) {
    cursor.moveToFirst();
    while(!cursor.isAfterLast()) {
        // Do whatever you like with the result.
        cursor.moveToNext();
    }
}

答案 2 :(得分:1)

// Getting Specific  Record by name. 
// in DB handler class make this function call it by sending search criteria. 
    Records getRecord(String name) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME, new String[]{KEY_ID, KEY_NAME, KEY_Auth_Name, KEY_B_PRICE}, KEY_ID + "=?",
                new String[]{name}, null, null, null,null);
        if (cursor.getCount() > 0)
            cursor.moveToFirst();
        Records Records = new Records(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2),cursor.getString(3));
// return book
        return Records;
    }

答案 3 :(得分:0)

您需要首先从数据库中获取所有数据,然后使用从数据库中获取的数据检查数据。

查看链接sample database example

假设您从数据库中获得了一个游标对象

cursor = db.rawQuery("SELECT yourColumnName FROM "+TABLE_NAME, null);
if(!cursor.moveToFirst()){

 }
 else{

do {
if(cursor.getString(0).equals(example)) 
 //do something which you want and break
 break;
 } while (cursor.moveToNext());

 }