私はアンドロイドを探求しようとしていますが、SQLiteデータベースを使い始めました。テーブルから単一の行を選択するための正しい構文は何でしょうか。ここで、選択する行は、を使用してユーザーから入力された値からのものeditText
です。前もって感謝します。
質問する
1579 次
3 に答える
1
上記の両方の回答に同意しません。ユーザーが次のクエリを入力するとどうなりますか。
Bobby Tables'; drop table yourTable;
代わりにこれを行うべきだと思います:
String query = "select * from TABLE_NAME WHERE column_name=?";
String[] selection = new String[1];
selection[0] = users_entered_value;
Cursor c = db.rawQuery(query, selection);
ETA: 実際、考えれば考えるほど、あなたは間違った方向に進んでいると思います。アプリが、ユーザーが入力した任意の文字列に対して一意の一致を 1 つだけ返すデータベース クエリに依存している場合、多くの場合、アプリが壊れる可能性があります。
おそらくあなたがすべきことは次のようなものです:
String query = "select * from TABLE_NAME WHERE column_name LIKE ?";
String[] selection = new String[1];
selection[0] = "%" + users_entered_value + "%";
Cursor c = db.rawQuery(query, selection);
次に、結果を反復処理し、独自の基準に従って「最適な」一致を選択します。
また、検索する列に対して、大文字と小文字を区別しない一致でテーブルを作成する必要があります。
于 2012-07-17T15:05:05.187 に答える
0
SQLiteDatabase db;
// make connection to your database ;
Cursor c = null ;
String SQL = "select * from TABLE_NAME where column_name='VALUE'";
c = db.rawQuery(SQL);
cには、実行したクエリの結果配列が含まれます。
ループを使用して値を取得できます。
于 2012-07-17T13:43:37.433 に答える
0
SQLite データベース データベース;
db.rawQuery("select * from yourTable where your_column_name = 'users_entered_value' limit 1", null);
于 2012-07-17T12:39:05.507 に答える