如何获取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();
我有一个名为 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();