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;

    }

17個のアイテムでレベル10にするまでは、いつも大丈夫でした. 各レベルに 30 個のアイテムがあり、レベル 10 に 17 (乱数) あるとします。レベル 5 であっても、137 (=4*30 + 1*17) を返します。なぜ常にレベル 10 も考慮に入れられるのかわかりません...

4

1 に答える 1

2

TEXTlevel のデータ型は(数値型ではない) なので、 の10前に来ていると思います5

あなたのレベルが常にある場合はINTEGER、可能であれば、テーブルのデータ型を変更することをお勧めします。

または、次のように使用できると思いますCASTING

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