如何使用 LIMIT 和 OFFSET 在一系列行之间获取随机行?
How to get an random row between a range of rows with LIMIT and OFFSET?
如何从使用 LIMIT
和 OFFSET
获取的选定 50 行中随机获取一行? OFFSET
值是动态的,可以是0
、50
、100
等。
当前的解决方案是获取所有行,然后通过代码从中随机选择一个,但是,使用 SQL 本地执行此操作会更有效吗?
SELECT *
FROM tableName
ORDER BY frequency DESC
LIMIT 50 OFFSET 0
将您的查询用作子查询并随机选择一行:
SELECT *
FROM (
SELECT * FROM tableName
ORDER BY frequency DESC LIMIT 50 OFFSET 0
)
ORDER BY RANDOM() LIMIT 1
如何从使用 LIMIT
和 OFFSET
获取的选定 50 行中随机获取一行? OFFSET
值是动态的,可以是0
、50
、100
等。
当前的解决方案是获取所有行,然后通过代码从中随机选择一个,但是,使用 SQL 本地执行此操作会更有效吗?
SELECT *
FROM tableName
ORDER BY frequency DESC
LIMIT 50 OFFSET 0
将您的查询用作子查询并随机选择一行:
SELECT *
FROM (
SELECT * FROM tableName
ORDER BY frequency DESC LIMIT 50 OFFSET 0
)
ORDER BY RANDOM() LIMIT 1