我在我的SQL数据库中保存了数据。
现在我想将这个保存的数据与字符串
进行比较这样的事情:
String example = "house";
现在我想检查,如果“house”已经在数据库中,带有if子句
类似这样的事情
if ( example == [SQL Data] ) {
}
else {
}
现在,我该如何做到这一点?
答案 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)
您需要首先从数据库中获取所有数据,然后使用从数据库中获取的数据检查数据。
假设您从数据库中获得了一个游标对象
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());
}