より複雑な SQL クエリを作成する場合の SQLite での query() と rawQuery() の違い。
例えば
SQL キーワード DISTINCT を使用したいので、データベースから重複が返されません。rawQuery() メソッドの使用方法を理解しています。これにより、実際の SQL クエリ ステートメントをメソッドに入れることができます。このようにして、rawQuery を使用して標準の SQL ステートメントを作成できます。rawQuery() を使用すると、DISTINCT キーワードを任意の SQL ステートメントに簡単に追加できます。
ただし、このコードで示されているように query() メソッドを使用する場合、通常の SQL ステートメントだけを使用することはできません。この場合、クエリの一部として DISTINCT キーワードを使用してクエリを作成するにはどうすればよいでしょうか? または同じ機能を持つ何か?
// get info from country table
public String[] getCountries(int numberOfRows) {
String[] columns = new String[]{COUNTRY_NAME};
String[] countries = new String[numberOfRows];
int counter = 0;
Cursor cursor = sqLiteDatabase.query(COUNTRY_TABLE, columns,
null, null, null, null, null);
if (cursor != null){
while(cursor.moveToNext()){
countries[counter++] = cursor.getString(cursor.getColumnIndex(COUNTRY_NAME));
}
}
return countries;
}