Mysql随机获取,但尝试使用最小的值

时间:2017-03-31 18:06:11

标签: mysql sql

我在MySQL表中有一行名为number_of_times,我将此查询发送到SQL SELECT * FROM Vocab ORDER BY Rand() LIMIT 3并返回3个随机数据,我如何选择3个随机数,但是从那些number_of_times行是最小的

1 个答案:

答案 0 :(得分:1)

您需要选择最小的值。只需使用number_of_times作为order by中的第一个键:

SELECT *
FROM Vocab
ORDER BY number_of_times asc, Rand()
LIMIT 3;

注意:如果您只想要具有最小number_of_times的值 - 即使其中没​​有3个 - 那么这可能会更快:

SELECT *
FROM Vocab
WHERE number_of_times = (SELECT MIN(number_of_times) from Vocab)
ORDER BY Rand()
LIMIT 3;

这可以利用Vocab(number_of_times)上的索引。