SQLite查询小于语句

时间:2012-11-09 17:20:08

标签: android sqlite

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

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;

    }

它一直都是oke,直到我把17级物品放入10级。假设我每级有30个项目,级别10有17个(随机数)。即使我在5级,它也会返回137(= 4 * 30 + 1 * 17)。我不知道为什么它总是被考虑到十级......

1 个答案:

答案 0 :(得分:2)

我认为级别的数据类型为TEXT(不是数字类型),因此10之前的5即将发布。

如果您的级别始终为INTEGER,那么我建议您更改表格中的数据类型(如果可能)。

或者,我认为您可以使用CASTING,如下所示:

   SELECT COUNT(*) FROM QUESTIONS WHERE CAST(LEVEL AS INTEGER) < " + level