MySql只选择列中值最小的一行

时间:2017-10-08 09:14:57

标签: php mysql

从列

中选择下一个值的mysql查询是什么

我有一个名为postOrder的列,值为1 2 3 4 5 6等 我试过了:

SELECT * FROM table WHERE such=such ORDER BY postOrder ASC LIMIT 1

但有时我得错了一行,比如4而不是3 我想我可以删除LIMIT 1条款,但后来我必须用php做更多的工作。

任何想法如何确保我总是得到下一行而不必获取所有行然后用PHP对它们进行排序? 谢谢。

3 个答案:

答案 0 :(得分:0)

如果我正确地理解了你的问题,我认为解决方案是使用这样的OFFSET:

xs ++ [x]

使用该偏移量,您可以获得正确的值并进行一些分页。

答案 1 :(得分:0)

您可以使用偏移来获取下一行:

select *
from table
order by postOrder
limit 1, 1;
------^----  Offset
---------^-- rows to fetch

或其他语法:

select *
from table
order by postOrder
limit 1 offset 1;

看看这个:https://www.w3schools.com/php/php_mysql_select_limit.asp

或此SO回答:Which rows are returned when using LIMIT with OFFSET in MySQL?

答案 2 :(得分:0)

您可以使用查询获取postOrder中的最后一个值,然后将其添加到主查询条件中。像这样的东西:

SELECT * FROM table
WHERE such = such 
AND postOrder IN (SELECT MAX(postOrder) FROM table)