我正在尝试使用mysql中的RAND()从我的表中随机选择5行,并且我已将LIMIT设置为5,但是为什么有时它返回少于5行呢?
这是我的查询:
SELECT id from MAIL where RAND() limit 5;
MAIL是我的表名,其中包含20多个记录。
答案 0 :(得分:0)
在您使用rand()
函数的版本中,MySQL在布尔上下文中评估其结果,因为它直接在where
子句中使用,而不是在order by
子句中使用。< / p>
如果将rand()
评估为false,则该记录将不在结果集中。通过这种方法,在特定查询中可能会删除15条以上的记录,从而导致返回的记录少于5条。
您应该使用order by rand()
子句来解决此问题。