如何获取Laravel 5.2中最新条件后的行号?

How can I get the row number after the latest condition in Laravel 5.2?

我有一个名为 table 的产品。这是 table 结构:

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

现在,我想要当 status = x 时的行号在最后一个 x 之后,这意味着 3 行。

您可以通过如下编写两个查询来完成此操作:

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

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

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

我不太擅长 Laravel 但你可以试试这个:

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