如何获得最后10然后显示随机5

son*_*rma 1 php mysql

你好,我是一个PHP开发人员,现在我有一个简单的问题,如我想从我的数据库表中获取最后10个数据,然后随机显示5个.

比如看下面的代码.

$random=rand(0,18);
mysqli_query(
    $connection,
    "SELECT something1,something2 
     FROM `table` 
     where (id !='0') 
     ORDER BY time DESC 
     LIMIT 4 OFFSET $random");
Run Code Online (Sandbox Code Playgroud)

此查询从18个中选择最后4个更新的字段,但我想要一个更好的解决方案

Bar*_*chs 7

首先,定义"最后10"; 现在让我们假设按时间排序的最后十个.所以,这实际上是我订购订单时的十位(我猜你有这个):

SELECT * FROM `table` WHERE (id != '0') ORDER BY time DESC LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

然后我们再次选择随机化和限制:

SELECT * FROM (
    SELECT * FROM `table` WHERE (id != '0') ORDER BY time DESC LIMIT 10;
) A ORDER BY RAND() LIMIT 5
Run Code Online (Sandbox Code Playgroud)

请记住,您的数据库非常强大且快速,可用于任何数据处理.