我的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是最后一个元素
答案 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)];