SQLデータバンクにデータを保存しました。
次に、この保存されたデータを文字列と比較します
このようなもの:
String example = "house";
ここで、if句を使用して、「家」がすでにデータバンクにあるかどうかを確認します。
このようなもの
if ( example == [SQL Data] ) {
}
else {
}
さて、どうすればこれを達成できますか?
次のようなことをします
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
}
ここから盗まれた
コードがコメントで台無しになるので、答えとしてSharathのコメントへの私の返信を書きます:
返信が間違っていると言っているわけではありませんが、テーブルからすべてを選択してデータベースの外で繰り返すのは本当に非効率的です。一般的にそのようにするのは悪い習慣なので、質問への回答として提案するべきではありません。
私が通常行う方法では、データベースにレコードが存在するかどうかを確認したい場合は、これが好きです。通常のwhileループよりも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();
}
}
// 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;
}
最初にデータベースからすべてのデータをフェッチし、次にデータベースから取得したデータでデータをチェックする必要があります。
データベースからカーソルオブジェクトを取得したとします
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());
}