表如下所示:

  id  ...  item_id  likes
  1          1       200
             1       300
             1       400
             1       4
  ...        2       54
             2       31
             3       22     

如何 for each 最受欢迎的商品获得3件或更少的商品

[
  item_id: 1,
  likes: 200,
],
[
  item_id: 1,
  likes: 300,
],
[
  item_id: 1,
  likes: 400,
],
[
  item_id: 2,
  likes: 54,
],
[
  item_id: 2,
  likes: 31,
],
[
  item_id: 3,
  likes: 22,
],

推荐答案

由于MySQL 8.0,您可以使用窗口函数row_number

with n as (
    select 
        id, item_id, likes, row_number() over (partition by item_id) rn
    from tbl
) select 
    item_id, likes 
from n 
where rn < 4;

Test Mysql window functions

<?php

$query = "with n as (
    select 
        id, item_id, likes, row_number() over (partition by item_id) rn
    from tbl
) select item_id, likes from n where rn < 4;";

// Select using Laravel
$rows = $db::select($db::raw($query));

var_export($rows);

Laravel DB query

Php相关问答推荐

如何使用PHP停止foreach循环中的重复项?

使用额外的输入字段自定义WooCommerce单个产品

添加自定义Metabox到WooCommerce管理订单,启用HPOS

PHP邮件表单无法识别重音/特殊字符

为什么调用干预\映像引发错误驱动程序\GD\Driver not found?

有什么方法可以阻止WordPress主题升级通知吗?

使用箭头函数语法时,在回调范围内无法访问变量变量(警告:未定义的变量)

将变体设置字段添加到WooCommerce中的特定变量产品

Laravel;Composer安装突然返回选项快捷方式不能为空.

FlySystem v3:使用本地适配器时出现问题

在WooCommerce中添加特定产品类型的百分比费用和固定费用

防止在WordPress短代码中显示重复产品并请求代码更正

Docker-用于部署的 PHP 应用程序映像无法在本地运行

AWS S3:当对象名称包含 % 时复制对象失败并出现错误 - 无效的复制源编码

PHP - 计算非数值数组

根据购买产品的自定义字段替换WooCommerce添加到购物车按钮

php如何删除括号内的百分比值

使用来自 PHP 表单的数据更新 xml 命名空间

如何将在同一台服务器上运行的 2 个 PHP 应用程序与使用公共会话分开

无法按今天加上 7 天显示数据库项目