Jos*_*ang 1 php mysql codeigniter
从一个表中随机选择记录; 我是否必须始终在PHP中设置临时变量?我需要一些帮助来选择CodeIgniter模型中的随机行,然后每次查看我的主页时在视图中显示三个不同的行.有没有人对如何解决这个问题有任何想法?提前致谢!
如果你没有大量的行,你可以简单地说:
SELECT * FROM myTable ORDER BY RAND() LIMIT 3;
Run Code Online (Sandbox Code Playgroud)
如果你有很多行,这将会变慢,但对于较小的数据集,它将正常工作.
正如史蒂夫米歇尔在他的回答中提到的那样,这种方法对于大型桌子来说会非常难看.他的建议是一个跳下去的好地方.如果你知道表中的近似最大整数PK,你可以做一些事情,比如在一个和你的最大PK值之间生成一个随机数,然后一次抓取一个随机行,如:
$q="SELECT * FROM table WHERE id >= {$myRandomValue}";
$row = $db->fetchOne($q); //or whatever CI's interface to grab a single is like
Run Code Online (Sandbox Code Playgroud)
当然,如果你需要3个随机行,你将在这里有三个查询,但由于它们完全在PK上,它们会很快(比整个表随机化).
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |