从特定行数获取数据

时间:2013-08-20 05:44:59

标签: java android database eclipse sqlite

请查看以下代码

public List getWordList(int listNumber) {
        // TODO Auto-generated method stub

        List<String> list_a = new ArrayList<String>();
        List<String> wordList = new ArrayList<String>();
        int counter = 0;

        try
        {
            String selectQuery = "select * from WordList";

            Cursor cursor = database.rawQuery(selectQuery, null);


            if(cursor.moveToFirst())
            {
                do
                {
                    String englishWord = cursor.getString(cursor.getColumnIndex("EnglishWord"));
                    String portugueseWord = cursor.getString(cursor.getColumnIndex("PortugueseWord"));
                    String englishHint = cursor.getString(cursor.getColumnIndex("EnglishHint"));
                    String portuguestHint = cursor.getString(cursor.getColumnIndex("PortugueseHint"));

                    list_a.add(englishWord);
                    list_a.add(portugueseWord);
                    list_a.add(englishHint);
                    list_a.add(portuguestHint);
                }
                while(cursor.moveToNext());

                //Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show();
            }


            cursor.close();
            return list_a;
        }
        catch(Exception e)
        {
            Toast.makeText(context, "Exception: "+e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
            return null;
        }


    }

在这里,我从第一行到最后一行获取数据。但是,这不是我需要的。如果'number',参数是1,我需要第0-9行的数据,如果'number'是2,如果'number'是3,我需要第10-19行的数据,我需要来自第20行的数据-29喜欢明智。

我不熟悉SQLite,所以我该怎么做?

1 个答案:

答案 0 :(得分:1)

SQL Limit Clause一样,分页功能最佳。请参阅Sqlite文档here

旧查询:

String selectQuery = "select * from WordList";

新查询:

String selectQuery = "select * from WordList LIMIT 0,10";

第一个数字表示偏移量。可以使用

之类的内容来纠正偏移
int offset = (somePageValue-1)*10;