【发布时间】:2011-05-21 07:18:01
【问题描述】:
我正在尝试选择得分最高的三行。显然我可以使用简单的东西,例如:
SELECT * FROM myTable ORDER BY myscore DESC LIMIT 3;
但我还想要一种简单的方法来随机返回这三行中的一个。通常我只是做一个 ORDER BY rand(),但是添加约束的最简洁的方法是什么是它必须是仅来自前 3 个得分行的随机约束?
谢谢!
【问题讨论】:
我正在尝试选择得分最高的三行。显然我可以使用简单的东西,例如:
SELECT * FROM myTable ORDER BY myscore DESC LIMIT 3;
但我还想要一种简单的方法来随机返回这三行中的一个。通常我只是做一个 ORDER BY rand(),但是添加约束的最简洁的方法是什么是它必须是仅来自前 3 个得分行的随机约束?
谢谢!
【问题讨论】:
SELECT * FROM
(
SELECT * FROM myTable ORDER BY myscore DESC LIMIT 3
) Top3
ORDER BY RAND() LIMIT 1;
【讨论】: