从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查询是一种反模式。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...