【问题标题】:How to select a random row in MySQL and PHP? [duplicate]如何在 MySQL 和 PHP 中选择随机行? [复制]
【发布时间】:2014-02-08 10:50:36
【问题描述】:

我的桌子是这样的:

id,url,name,imagelink

我想做一些类似的事情:

SELECT * FROM id WHERE id="randomid"

我想从像id=17,url17,name17,imagelink17 这样的随机行中获取所有数据并将其保存在变量后缀中。例如 $currentid,$currenturl, $currentname, $currentimagelink

我尝试过类似的方法:

"SELECT * FROM table WHERE id= ORDER BY rand() LIMIT 20";

这显然不起作用。我怎样才能正确地做到这一点?

【问题讨论】:

  • @kingkero 回答这个问题 ;)
  • @kingkero 错了,他需要使用IN
  • 这将返回所有条目。我只想显示一个
  • 大声笑忘了它当然我必须将限制设置为 1
  • @Mr.Alien 不,@kingero 的解决方案运行良好。 OPs curretn 代码中的唯一问题是他的where 子句中的语法错误以及where 子句无论如何都是多余的事实。

标签: php mysql random


【解决方案1】:

由于您不想要特定的行,请将 WHERE id= 排除在查询之外,它应该可以工作。

SELECT * FROM table ORDER BY RAND() LIMIT 20

将返回 20 个随机行,

SELECT * FROM table ORDER BY RAND() LIMIT 1

只给你一个

【讨论】:

  • 非常感谢!我会在 10 分钟内接受答案;)
【解决方案2】:

试试这样的:

$query = "SELECT * FROM table_name ORDER BY RAND() LIMIT 1";
$result= mysqli_query($connection, $query);

对于你可以拥有的变量

    while($row = mysqli_fetch_array($result))
      {

        $currenid=$row['id'];
        $currenturl=$row['url']; 
        $currentname=$row['name'];
        $currentimagelink=$row['imagelink'];

      }

【讨论】:

  • 也正确,谢谢!
  • @kingkero 完美地完成了查询,但我也发布了这个,因为他没有写如何设置变量,希望我帮助:)
【解决方案3】:

你可以这样查询:

SELECT * FROM table_name ORDER BY RAND() LIMIT 1

【讨论】:

  • 这不是(基本上)和kingkero的回答一样吗?
  • 当我发布这个答案时,没有显示。可能是网速慢的问题
  • 别担心,@Shri。如果您愿意,您可以删除您的答案。就个人而言,我认为没有必要在同一个线程上存在两个完全相同的答案。 :-)
猜你喜欢
  • 2013-04-01
  • 2010-11-19
  • 2018-04-03
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2015-11-28
相关资源
最近更新 更多