这让我都感到困惑!我正在尝试从数据库中的列返回最大值,但是返回值始终是该列的名称.
我使用的查询:
private static final String SELECTMAX = "SELECT MAX(?) FROM " + TABLE_NAME ;
(test)函数返回最大值:
public int getMaxValue(String field){
int r = 0;
String f[] = new String[] {field};
Cursor c = this.db.rawQuery(SELECTMAX, f);
if (c.moveToFirst()) {
String s = c.getString(0);
Log.i("XXXXX","Max num: " + s);
}
return r;
}
我正在查询的列是INTEGER类型,但结果“ s”始终是列名,而不是所需的值.
谢谢
解决方法:
我在sqllite中没有很多经验,是吗?准备好的陈述的参数?如果是这样,则看起来您正在选择列名的字符串表示形式的最大值,则不应将列名作为参数传递.
因此,您的查询应如下所示.
从“ TABLE_NAME”中选择MAX;
您正在有效执行
从“ TABLE_NAME”中选择MAX(多个);
标签:sqlite,java,android
来源: https://codeday.me/bug/20191024/1916845.html