2016-04-25 60 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