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

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

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

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

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

vfwfrxfs

vfwfrxfs1#

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

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

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

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

g6baxovj2#

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

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

相关问题