[英]mysql Query to get next results
在某些情况下,如何在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
并且可以扩展到很多下一行)
您可以为此使用子查询。 假设每个值出现一次:
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()
可以提供帮助。
如果确实遇到了问题,那么您正在寻找SQL解决方案。 如果那是重点,那么您可以在何处建立条件。 即
SELECT * FROM tablename WHERE columnname BETWEEN 20 AND 30;
您必须将tablename
名替换为tablename
名。 和columnname
以及表格中的相应列。 然后,您可以在语句中输入WHERE
。 您的情况是BETWEEN
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.