【问题标题】:how get random row from =>1 in table of database in MySQL?如何从 MySQL 数据库表中的 =>1 获取随机行?
【发布时间】:2020-03-24 14:52:10
【问题描述】:

这是我的 PHP 代码,如何从 MySQL 数据库表中的 'featured'=>1 中随机获取行? 下面代码的哪一部分应该改变?

$featured_movie = $this->db->get_where('movie', array('featured'=>1))->row();

【问题讨论】:

  • 你在使用框架吗(看起来像 codeigniter?)?数据库接口包装器?
  • 这个方法所在的类是什么?你在使用框架吗?
  • @GrumpyCrouton 是的
  • @KamyarMirzavaziri 是的
  • @Ashkan 您需要在问题中给出框架的名称。

标签: php mysql random


【解决方案1】:

您需要按rand() 对查询进行排序,并将查询限制为一次返回以加快速度(这是通过使用get_where 的第三个参数来完成的)。

$featured_movie = $this->db->order_by('featured', 'RANDOM')->get_where('movie', ['featured' => 1], 1)->row();

【讨论】:

  • 感谢您的帮助,我试过了,但它根本不起作用。
  • 这是错误日志 ---> 调用未定义的方法 CI_DB_mysqli_result::order_by()
  • @Ashkan 啊,我明白了。从文档看来,get_where() 必须是链中的最后一个调用。让我知道当前代码是否有效。你可能需要单独做$featured_movie->row()
  • $featured_movie = $this->db->order_by('featured', 'RANDOM')->get_where('movie', array('featured'=>1))->row();
猜你喜欢
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多