在进行更复杂的 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;
}