PHP中的rand()函数问题

时间:2014-11-30 00:58:17

标签: php mysql random fetch

我的rand()函数有点麻烦。我有以下查询:

$listTrainers = mysqli_query($conn, "SELECT emp_id FROM employees;"); 

    while($fetchTrainers = mysqli_fetch_row($listTrainers))
    {
        echo 'ID: ' . $fetchTrainers['0']. '<br>';

    }

此查询返回数据库中所有员工的ID,有没有办法可以随机选择其中一个ID并将其存储在变量中?

我正在尝试使用以下功能:

echo(rand(begin, end));

其中begin是查询中的第一个元素,end是最后一个元素

3 个答案:

答案 0 :(得分:3)

将此添加到您的查询中:

ORDER BY RAND() LIMIT 1

答案 1 :(得分:2)

您可以在查询中轻松完成

SELECT emp_id FROM employees ORDER BY RAND() LIMIT 1

答案 2 :(得分:0)

最简单的方法是直接在数据库中执行此操作,以避免在只需要所有ID时获取所有ID:

SELECT
    emp_id
FROM
    employees
ORDER BY
    RAND()
LIMIT
    1

如果你确实需要所有ID,但另外想要随机选择一个,请使用它来避免两次查询数据库:

$listTrainers = mysqli_query($conn, "SELECT emp_id FROM employees;"); 

while($fetchTrainers = mysqli_fetch_row($listTrainers))
{
    $id = $fetchTrainers[0];
    echo 'ID: ' . $id . '<br>';
    $ids[] = $id;
}
$randomId = $ids[array_rand($ids)];