MySQL中RAND()的工作过程?

时间:2018-06-19 12:46:24

标签: mysql mysql5

我正在尝试使用mysql中的RAND()从我的表中随机选择5行,并且我已将LIMIT设置为5,但是为什么有时它返回少于5行呢?

这是我的查询:

SELECT id from MAIL where RAND() limit 5;

MAIL是我的表名,其中包含20多个记录。

1 个答案:

答案 0 :(得分:0)

在您使用rand()函数的版本中,MySQL在布尔上下文中评估其结果,因为它直接在where子句中使用,而不是在order by子句中使用。< / p>

如果将rand()评估为false,则该记录将不在结果集中。通过这种方法,在特定查询中可能会删除15条以上的记录,从而导致返回的记录少于5条。

您应该使用order by rand()子句来解决此问题。