4

SQLデータバンクにデータを保存しました。

次に、この保存されたデータを文字列と比較します

このようなもの:

String example = "house";

ここで、if句を使用して、「家」がすでにデータバンクにあるかどうかを確認します。

このようなもの

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

さて、どうすればこれを達成できますか?

4

4 に答える 4

10

次のようなことをします

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
}

ここから盗まれた

于 2012-10-16T17:39:20.613 に答える
1

コードがコメントで台無しになるので、答えとして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();
    }
}
于 2012-10-16T17:39:55.473 に答える
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;
    }
于 2017-04-23T17:18:31.550 に答える
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());

 }
于 2012-10-16T17:02:29.867 に答える