从列
中选择下一个值的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对它们进行排序? 谢谢。
答案 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)