mysql查询以获取下一个结果

时间:2015-11-30 14:29:44

标签: php mysql

如何在某些情况下在mysql中获得下一些结果?

+-----+---------------+-------------------------+
| id  | update_type   |    message              |
+-----+-----------------------------------------+
| 1   |   10          | One tow three           |
| 2   |   20          | No error in this        |
| 3   |   0           | My testing message      |
| 4   |   0           | php module test         |
| 5   |   30          | hello world             |
| 6   |   0           | team spirit             |
| 7   |   40          | puzzle game             |
| 8   |   50          | social game             |
| 9   |   0           | stackoverflow           |
|10   |   0           | stackexchange           |
+-----+---------------+-------------------------+

在上表中,如何从update_type=20获取所有消息,直到update_type更改为30。 (上表是静态的,值0,可以扩展到下一行)

2 个答案:

答案 0 :(得分:0)

您可以使用子查询来实现此目的。假设每个值出现一次:

select t.*
from table t
where t.id >= (select t2.id from t t2 where t2.update_type = 20) and
      t.id <= (select t2.id from t t2 where t2.update_type = 30);

如果值出现多次,则此查询将生成错误(子查询预计只返回一个值)。在这种情况下您想要做的事情并不清楚,但子查询中的min()max()可以提供帮助。

答案 1 :(得分:0)

如果我确实得到了您的问题,那么您正在寻找SQL解决方案。如果这就是重点,那么你可以在where子句中创建一个条件。即

SELECT * FROM tablename WHERE columnname BETWEEN 20 AND 30;

您必须将tablename替换为您的表名。和columnname以及表格中的相应列。然后,您可以在语句中输入WHERE。在您的情况下,条件为BETWEEN