2016-04-25 13 views
-1

特定の開始点からMySqlの特定の行数を条件として選択したいとします。開始点は変数でなければなりません。 私の問題は、どこから行けばいいのですか?MySqlは、開始条件と条件を持つ特定の行数を選択します。

In言葉: "最初の5行の後に" status "が1になり、次の5行が" status "が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に等しいと、5つの行をしたい初めに開始しました。 (開始変数は0です)。

予想されるデータ:

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

後者の場合

今は状況がある次の5行が1 を(start変数が5である)に等しい必要があります。

予想されるデータ:

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

がどのように私はこれを達成することができますか?

+2

例のデータを追加して、期待される出力 –

+2

してくださいあなたは*これを言い換えてくださいそして、私は20行で始めたいいけないことができ、私は状況が* –

+0

1に等しくされる20行で開始する必要があります問題は、特定の行をどこに開始しないかということです。私が20番のスタートを与えたとき、20番の行の後に "status"が1だったところから始めたいと思っています。 – TmCrafz

答えて

1

LIMIT句を使用します。最初のパラメータは、結果の受信を開始する完全な結果セット内のインデックスです。 2番目のパラメータは、必要な結果の数です。その上

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

そして:次の5を取得するには

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

:だから、最初の5件が表示されます。また、ここを参照してください:http://dev.mysql.com/doc/refman/5.5/en/select.html