Random () в SQLite и Android SDK - PullRequest
       3

Random () в SQLite и Android SDK

10 голосов
/ 03 декабря 2011

Я хочу извлечь случайные строки из базы данных приложения sqlite в Android.Я знаю, что с sqlite вы можете выбрать случайные строки с помощью:

SELECT * FROM table ORDER BY RANDOM() LIMIT 1;

В приложении у меня есть что-то вроде этого

return mDb.query(TABLE, new String[] {"col1", "col2"}, null, null, null, null, "Random()", "2");

это для извлечения двух случайных строкв таблице ТАБЛИЦА.Но он продолжает возвращать те же строки.Что не так с заявлением?

Спасибо

Ответы [ 4 ]

20 голосов
/ 07 декабря 2011

попробуйте

Cursor cursor = this.db.query("YourTable Order BY RANDOM() LIMIT 1",
                new String[] { "*" }, null, null, null, null, null);
4 голосов
/ 29 июля 2013

Установить запрос, как показано ниже:

public Cursor getRandomDataItemFromDb(String tableName, int limit) {
    Cursor cursor = db.rawQuery("SELECT * FROM " + tableName+ " ORDER BY RANDOM() LIMIT " + limit, null);
    if (cursor.moveToFirst()) {
        return cursor;
    }
    return cursor;
}

Готово

2 голосов
/ 16 мая 2014

Используйте случайную функцию как в строке в вашем запросе. Я дал вам образец ниже.

String orderBy = "RANDOM()";
Cursor dbc = this.db.query(TABLE_NAME, columnArray, null, null, null, null, orderBy, null);
2 голосов
/ 22 ноября 2012

Используйте предложение orderBy следующим образом

Cursor cursor = db.query(TABLE_NAME, projection, selection, selectionArgs, null, null, "RANDOM() limit 1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...