选择随机值MYSQL但不是当前值

时间:2013-06-12 22:39:02

标签: php mysql random

我有以下代码从数据库中提取随机值。

$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个值。有时它们在刷新时连续出现不止一次。

可以修改查询以显示不是当前值的随机值吗?

1 个答案:

答案 0 :(得分:1)

为了做到这一点,你需要以某种方式记住最后一行。 然后做这样的事情

$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");

为了记住最后一行,您可以使用会话。

您的整个代码可能如下所示。

//会话需要更好地

$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>";
}