PHP/MySQL 按日期和随机排序

标签 php mysql random

我使用此代码通过 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/

相关文章:

php - 如何显示平均分?

mysql - 如果未在 NOT NULL 列上指定值,如何使 MySQL 产生错误?

java - 随机生成java唯一数字

php - 属性命名约定

php - Laravel 中显示类别、子类别和子子类别时出错

php - 从子查询结果中获取 MAX(value)

Java:如何使用从另一个数组获取的随机索引构建给定长度的数组

php MySQL 应该可以工作

php - 具有多个值的搜索表单查询 - PHP/MYSQL

python randrange 重复选择