在领域表中选择一个随机行

时间:2015-11-20 13:27:27

标签: android realm

我想从领域表中选择一个随机行。像 -

这样的东西
SELECT * FROM table ORDER BY RANDOM() LIMIT 1;

4 个答案:

答案 0 :(得分:5)

这样的事情可以,是吗?

Random random = new Random();
RealmResults<YourTable> list = realm.where(YourTable.class).findAll();
YourTable yourTable = list.get(random.nextInt(list.size()));

答案 1 :(得分:0)

取决于你想做什么:

您想从表中获取随机行吗? 或随机表中的一个(随机)行?

我猜你的意思是前者: 如果您的表中有id,则可以:

SELECT * FROM table b WHERE id = FLOOR(RAND() * (3 - 0 + 1)) + 0

你应该像这样放置一个最小值和最大值:

FLOOR(RAND() * (<max> - <min> + 1)) + <min>

(如找到here

答案 2 :(得分:0)

SWIFT 5

我这样做,并且效果很好:

let results      = realm.objects(MyObject.self)        // Get all the objects
let randomIndex  = Int.random(in: 0 ..< results.count) // Get a random number within the number of objects returned
let randomObject = results[randomIndex]                // Get a random object

答案 3 :(得分:-1)

String query =String.format("SELECT * FROM realm ORDER BY %d LIMIT 1", random());
databaseHelper = new DatabaseHelper(this);
        database = databaseHelper.getWritableDatabase();
Cursor cursor = database.execSQL(query);

假设您有一个扩展SQLiteOpenHelper的类DatabaseHelper

,它可以正常工作