0

我想计算低于您当前级别的所有级别的项目数:

public int getAmountPrevLevels(int level) { 
        int count = 0;

        Cursor c = myDataBase.rawQuery(
                "SELECT COUNT(*) FROM QUESTIONS WHERE LEVEL < " + level , null);
        c.moveToFirst();
        count = c.getInt(0);
        c.close();
        myDataBase.close();

        return count;

    }

它总是没问题,直到我把 10 级和 17 项放在里面。假设我每个级别有 30 个项目,第 10 级有 17 个(随机数)。即使我在第 5 级,它也会返回 137(=4*30 + 1*17)。我不知道为什么它总是考虑到十级......

4

1 回答 1

2

我认为级别的数据类型是TEXT(不是数字类型),因此105.

如果您的级别总是如此,INTEGER那么我建议您尽可能更改表中的数据类型。

或者,我认为你可以使用CASTING如下:

   SELECT COUNT(*) FROM QUESTIONS WHERE CAST(LEVEL AS INTEGER) < " + level 
于 2012-11-09T17:24:30.610 回答