在Android中,从SQLite表中的特定范围中抓取两个随机行

时间:2012-11-12 22:24:25

标签: android sqlite

我正在android中创建一个简单的多选琐事游戏。我将有三个选择,A,B或C.我创建了一个SQLite数据库,其中包含对琐事问题的三个可能答案。我已经让它显示正确的答案。如何编写SQL以便从指定范围中选择两个随机唯一答案?这段代码:

    // ---Grabs RANDOM Event ---
    public String getRandomEvent() {
    Cursor cursor = this.db.query("thetable Order BY RANDOM() LIMIT 1", 
            new String[] { KEY_EVENT }, null, null, null, null, null);
        String result = "";

        for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()){
            result = result
            + cursor.getString(0);
        }

        return result;

    }

// --- END Grabs Event ---

从整个表格中抓取一个随机答案。此外,使用此代码,特别是thetable Order BY RANDOM() LIMIT 1,它可以两次显示相同的答案。我想做的是让它从正确答案上方10行和正确答案下方10行中获取两个独特的答案。所以基本上我希望光标转到正确答案cursor.moveToFirst();,然后从正确答案上方和下方的20行中选择两个随机答案。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

使用随机顺序,“上方”和“下方”并没有多大意义。

使用LIMIT 3抓住三个随机答案。