这看起来是一项非常简单的任务,尝试使用以下命令在我的 Android 应用程序的 SQLite 数据库中获取给定范围的记录/行:
String[] projection = {"_id"};
String selection = "_id between ? and ?";
String[] selectionArgs = {"1", "10"};
queryBuilder.query(db, projection, selection, selectionArgs, null, null, null);
通过上面的 selectionArgs,我只得到两行,第 1 行和第 10 行。如果我将 arg 更改为其他任何内容,我将得到全部(整组记录/行),就好像没有条件一样。一直在敲我的头一天,为什么它会这样工作,也许关于 SQLite 中“between”的使用有一些特别的事情需要了解?非常感谢任何评论/帮助。
最佳答案
您可以使用此代码。
private SQLiteDatabase productDatabase;
public Cursor get_result(){
Cursor c;
String sql = "SELECT * FROM " + tableName +"WHERE _id BETWEEN" + value1 +"AND" + value2;
c = productDatabase.rawQuery(sql, null);
}
Cursor cursor=get_result();
if(cursor.moveToNext()){
Log.d("count of product id="+cursor.getString(0));
}
关于Android SQLite "BETWEEN"不包含或返回所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079875/