Image with part of the database in question
我有这张桌子
id ¦ Follow
1 ¦ Route 1
2 ¦ Store 1
3 ¦ Store 2
4 ¦ end
5 ¦ Route 2
6 ¦ Store 3
7 ¦ Store 4
8 ¦ end
etc, etc
所以,我试图理解的是,我怎样才能得到从路线号码(即路线2)开始直到第一个"结束"找到了吗?路线可能会发生变化,因此必须来自字符串"路线编号"到下一个"结束"满足。
解决方案可能非常简单,但我不知道从哪里开始,因为我在这方面很新,而且我还没有找到任何与SO相关的东西。如果您希望我更具体,请告诉我。
谢谢!
答案 0 :(得分:1)
让我假设您有一个唯一指定排序的列。我称之为id
。然后你可以这样做:
select t.*
from t cross join
(select id
from t
where name = 'Route 2'
) tt
where t.id >= tt.id and
t.id <= (select min(t2.id)
from t t2
where t2.id > t.id and
t2.name = 'end'
);
我应该注意到你有一个非常神秘的数据结构。我想你可能会重新考虑如何存储数据。