从MySQL中选择给定的字符串到下一个给定的字符串

时间:2017-05-13 19:24:15

标签: mysql sql

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相关的东西。如果您希望我更具体,请告诉我。

谢谢!

1 个答案:

答案 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'
              );

我应该注意到你有一个非常神秘的数据结构。我想你可能会重新考虑如何存储数据。