我使用此代码通过 PHP 从数据库中获取结果:
$get_article_sql = "SELECT * FROM articles ORDER BY added DESC LIMIT 8";
$get_article_res = mysqli_query($con, $get_article_sql);
while($article = mysqli_fetch_assoc($get_article_res)){
...
}
但是,我真正想做的是随机化结果 - 所以,我得到最新的 8 篇文章,然后随机化这些结果 - 有点像:
$get_article_sql = "SELECT * FROM articles ORDER BY added DESC RAND() LIMIT 8";
显然这会导致获取错误,但有什么实际的方法可以做到这一点吗?
最佳答案
您可以在获得所有结果后使用 shuffle($array)
在 PHP 中随机播放它们,这可能更快,或者您可以使用查询,但您必须基本上使用子查询来获取查询中的总结果,该查询会打乱其余部分。
像这样:
SELECT * FROM ( SELECT * FROM articles ORDER BY added DESC LIMIT 8 ) ORDER BY RAND()
关于PHP/MySQL 按日期和随机排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27122809/