如何从使用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