5つの列があり、5つの列からデータを検索したいのですが、列の値が5を超える可能性があり、固定されていません。
例
列名
名、姓、件名、結果、成績。
sqliteを使用して複数の値を検索したい(名はa、b、c、dにすることができます)
これを達成する方法は??
どんな助けでもいただければ幸いです。
SQLiteでキーワードを使用IN
すると、複数の値のセットで検索を実行できます。例えば:
SELECT * FROM table WHERE first-name IN ('a', 'b', 'c', 'd');
ここでできることは、任意のループを使用して入力(検索可能な単語)パラメーターを作成し、それをIN
角かっこで置き換えることです。
例えば:
String names = "'a', 'b', 'c', 'd'"; /* build it through loop */
Cursor c = db.rawQuery("SELECT * FROM table WHERE first-name IN (?)",
new String[]{names});
複数の列がある場合:
String names = "'a', 'b', 'c', 'd'"; /* build it through loop */
Cursor c = db.rawQuery("SELECT * FROM table WHERE first-name IN (?)
OR last-name IN (?) OR subject IN (?) OR result IN (?) OR grade IN (?)",
new String[]{names, names, names, names, names});
String[] names = new String[3];
String QueryArgs ="";
for(int index=0;index < 3;index++)
{
QueryArgs = QueryArgs.concat(",?");
names [index] = "xyz";
}
QueryArgs = QueryArgs.substring(1);
Cursor dataset = db.rawquery("select * from table where name in(" +QueryArgs+ ")",names);