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

最佳答案

您需要选择最小值。只需使用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)上的索引。

07-28 10:34