2016-04-25 88 views
-1

我想從特定的起始點和條件中選擇MySql中特定的行數。起點應該是一個變量。 我的問題是,我沒有行從哪裏開始。MySql選擇具有開始和條件的特定行數

輸入字數: 「在狀態爲等於1的前5行之後開始,並從那裏給我下一個5行,狀態爲1」。

示例數據:

----------------------- 
| id | title | status | 
----------------------- 
| 1 | Test | 1 | 
| 2 | Test | 0 | 
| 3 | Test | 1 | 
| 4 | Test | 0 | 
| 5 | Test | 1 | 
| 6 | Test | 1 | 
| 7 | Test | 0 | 
| 8 | Test | 1 | 
| 9 | Test | 1 | 
| 10 | Test | 1 | 
| 11 | Test | 1 | 
| 12 | Test | 1 | 
| 13 | Test | 0 | 
| 14 | Test | 1 | 
| 15 | Test | 0 | 

首例

我想五行狀態等於1,在開始啓動。 (起始變量爲0)。

預期的數據:

----------------------- 
| id | title | status | 
----------------------- 
| 1 | Test | 1 | 
| 3 | Test | 1 | 
| 5 | Test | 1 | 
| 6 | Test | 1 | 
| 8 | Test | 1 | 

第二種情況

現在我需要在未來5行,其中狀態是等於1 (開始變量是5)。

預計數據:

----------------------- 
| id | title | status | 
----------------------- 
| 9 | Test | 1 | 
| 10 | Test | 1 | 
| 11 | Test | 1 | 
| 12 | Test | 1 | 
| 14 | Test | 1 | 

我怎樣才能做到這一點?

+2

請添加示例數據和預期輸出 –

+2

請問您可以重新說明這一點*我不想從20行開始,我需要從20行開始,其中狀態等於1 * –

+0

問題是我現在不在特定的行,從哪裏開始。當我以20開頭的數字開頭時,我想在「狀態」等於1的20行之後開始。相反,如果第20行。 – TmCrafz

回答

1

使用LIMIT子句。第一個參數是您想要開始接收結果的完整結果集中的索引。第二個參數是你想要的結果數量。因此,要獲得第5分的結果:

SELECT * FROM my_table WHERE status = 1 ORDER BY id LIMIT 0,5 

獲得下一個5:

SELECT * FROM my_table WHERE status = 1 ORDER BY id LIMIT 5,5 

等。另請參見:http://dev.mysql.com/doc/refman/5.5/en/select.html