我有以下代码可以从数据库中提取随机值。
$result = mysqli_query($con,"SELECT column1 FROM table1
ORDER BY RAND()
LIMIT 1");
while($row = mysqli_fetch_array($result))
{
echo $row['column1'];
echo "<br>";
}
目前我总共只有大约 10 个值。有时它们在刷新时连续出现不止一次。
是否可以修改查询以显示不是当前值的随机值?
最佳答案
为了做到这一点,您需要以某种方式记住最后一行。 然后做这样的事情
$result = mysqli_query($con,"SELECT column1 FROM table1
where id_of_your_row != ".mysqli_real_escape_string($id_of_your_last_row)."
ORDER BY RAND()
LIMIT 1");
为了记住最后一行,您可以使用 session 。
您的整个代码可能如下所示。
// session 需要开始
$result = mysqli_query($con,"SELECT column1 FROM table1
where column1 != ".(isset($_SESSION["lastid"]) ? mysqli_real_escape_string($_SESSION["lastid"]) : '')." ORDER BY RAND()
LIMIT 1");
while($row = mysqli_fetch_array($result))
{
echo $row['column1'];
$_SESSION["lastid"] = $row['column1'];
echo "<br>";
}
关于php - 选择随机值 MYSQL 但不是当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076563/