[免责声明:我很难表达我的问题;所有帮助欢迎]如何执行依赖于其他行的SQL查询?
在我对SQL的理解中,关系主要集中在检索行。我经常遇到以下问题:
如何有效地获得所有的情况,其中val2=Z
后跟一行val2=V
?换句话说:我该如何表达的查询,可以看一个头到以下行,看看是否有我感兴趣的行的序列
id val1 val2
0 A Z
1 B V
2 C Z
3 D B
##基于更新
。 (有帮助)的答案,我应该清楚一件额外的事情:我可以看到的顺序是灵活的(它也可以是Z B
),其长度也可以不同。
在这种情况下,我想一个条件索引可以工作:'select * from tblname as a where val2 ='z'and(选择val2 from tblname as b where b.id> a.id order by b.id limit 1)='v' - 这应该首先检查val2 ='z''的索引,然后根据子查询有条件地缩小索引。虽然我个人会在PHP中执行这种逻辑...... –
注意:在SQL中,行没有固有顺序。所以没有“下一行”,除非你定义一个命令来确定下一行是什么。 – RBarryYoung
@RBarryYoung。 。 。假设'id'列为这个问题提供了这个信息是合理的。 –