如何解决从MySQL数据库回显随机ID号,而无需重复数字?
| 如何在不重复数字的情况下从mysql数据库中回显随机ID号? 这是我的示例代码:$query = mysql_query(\"SELECT * FROM store\");
$number=mysql_num_rows($query);
for ($count=1; $count<= $number ; $count++)
{
$id = mysql_query (\"SELECT id FROM store ORDER BY RAND() LIMIT $number\");
$id = mysql_fetch_assoc($id);
$id = $id[\'id\'];
echo $id;
}
它将回显六个随机数,但具有类似“ 1 3 2 4 5”的实例,其中1回声两次而不是一次。提前致谢
解决方法
问题是,您在循环内部执行了一个“ 1”,而不是选择一次并在结果上循环。
$query = mysql_query(\"SELECT * FROM store\");
$number=mysql_num_rows($query);
$result = mysql_query (\"SELECT id FROM store ORDER BY RAND() LIMIT $number\");
while ($row = mysql_fetch_assoc($result)) {
echo $row[\"id\"];
}
顺便说一句:SELECT *
获取记录集的数量很难看,请改用SELECT count(id)
,只需按rand排序结果并限制其数量,您的ID必须是唯一的:
SELECT * FROM store ORDER BY RAND() LIMIT 0,6
,如果您使用的是php,则最好将其随机化(更好,更快,更简单,没有锁定问题)。循环内的SQL查询是一种反模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。