我正在使用全文搜索来提取行。
我根据分数对行进行排序 (ORDER BY SCORE) ,然后在前 20 行 (LIMIT 20) 中,我想对结果集进行兰特 (RAND) 操作。
因此,对于任何特定的搜索词,我想随机显示前 20 个结果中的 5 个。
我的解决方法是基于代码 - 我将前 20 个放入一个数组中,然后随机选择 5 个。
有没有sql方法可以做到这一点?
您可以使用内部选择来完成此操作。在内部选择中选择前二十行。在外部选择中,随机排列这些行并选择前五名:
SELECT *
FROM (
SELECT *
FROM table1
ORDER BY score DESC
LIMIT 20
) AS T1
ORDER BY RAND()
LIMIT 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)