mysql - groupBy 保留个人条目

标签 mysql laravel

我正在制作一个计分系统,我正在尝试将分数组合在一起并循环遍历它们,这样如果你打平,你就会得到相同的位置。示例:

score = 100
score = 100
score = 90

前2个分数应该排在第1位,第3个分数排在第2位。

所以我试过了

 $submissions = Submission::where([
                                        ['league_id', $league->id ],
                                        ['challenge_id', $challenge->id]
                                    ])
                                    ->orderBy('class', 'desc')
                                    ->orderBy('user_score', 'asc')
                                    ->groupBy('user_score')
                                    ->get();

然后我循环:

if( count($submissions) > 0 )
{
      foreach ( $submissions as $index => $submission_group ) {
          if( count($submission_group) > 0 ){

              foreach ( $submission_group as $i => $submission {
                  $submission->points = $i+ 1;
                  $submission->save();
              }
          } 
      }                                
}

问题是 $submissions 正在返回一个包含 2 个条目的数组(仅第一个和第三个条目)。我想它会返回 2 个数组。像这样:

[
  submission[],
  submission[],
],
[
 submission[],
]

如果我删除 groupBy,我将获得所有 3 个条目。它似乎将两个 100 分归为 1 个条目,将 90 分归为另一个条目

最佳答案

我不确定它是否相关,但我想 groupBy() 方法应该在 get() 方法之后使用。

关于mysql - groupBy 保留个人条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937476/

相关文章:

mysql - 如何将2个查询与2个表组合起来?

json - 如何将 Laravel 5.4 与 Angular 4 集成

javascript - 使用动态创建的输入字段插入多条记录

html - <br/> 为 <p> 中的每个空格留出余量

laravel - Laravel setUpBeforeClass上的PHPUnit找不到工厂类

php - 获取带有评论和标签的精选帖子 Laravel

php - 从 mysql 数据库写入 html 时遇到问题

mysql - 在 Rails 中编写一个简单的递增计数器

php - echo 图像位置确实适用于带有空格的图像名称

mysql - 组合查询中的记录