如何在Laravel5.2的最新条件之后获得行号?

ctzwtxfj  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(522)

我有一个名为product的表。以下是表格结构:

  1. id name date status
  2. 1 A 2018-8-10 z
  3. 2 A 2018-8-11 x
  4. 3 A 2018-8-12 z
  5. 4 A 2018-8-13 z
  6. 5 A 2018-8-14 x <- After this, last status = x
  7. 6 A 2018-8-15 z
  8. 7 A 2018-8-16 z
  9. 8 A 2018-8-17 z

现在,我想要最后一个x后面的status=x时的行号,也就是3行。

vfwfrxfs

vfwfrxfs1#

如果使用普通查询,可以这样做。所以找到最后一个有状态的条目 x . 然后选择所有比这个id大的项。然后你应该有所有剩余的项。

  1. SELECT * FROM table t WHERE t.id > (SELECT id FROM table WHERE status = 'x' LIMIT 1 ORDER BY id DESC)

我不太擅长拉威尔,但你可以试试这个谎言:

  1. $result = myModel::latest('id')->where('status','x')->first();
  2. $row_count = myModel::where('id','>',$result->id)->count();
g6baxovj

g6baxovj2#

您可以按如下方式编写两个查询:

  1. $result = modelName::latest('date')->where('status','x')->first();
  2. $row_count = modelName::where('date','>',$result->date)->count();

相关问题