我有一个名为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
现在,我要在status = x的行号位于最后一个表示3行的x之后。
答案 0 :(得分:2)
如果您使用普通查询,则可以执行以下操作。因此,找到状态为x
的最后一个条目。然后选择所有大于此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();
答案 1 :(得分:1)
您可以通过编写以下两个查询来做到这一点:
$result = modelName::latest('date')->where('status','x')->first();
$row_count = modelName::where('date','>',$result->date)->count();