【问题标题】:Working procedure of RAND() in MySQL?MySQL中RAND()的工作流程?
【发布时间】:2018-11-28 10:37:11
【问题描述】:

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

这是我的查询:

SELECT id from MAIL where RAND() limit 5;

MAIL 是我的表名,包含超过 20 条记录。

【问题讨论】:

标签: mysql mysql5


【解决方案1】:

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

如果rand() 被评估为假,则记录将被排除在结果集中之外。在特定查询中,由于这种方法可能会消除超过 15 条记录,从而导致返回的记录少于 5 条。

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

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多