这将是MySQL的查询,以便从该列选择下一个值MySQL的列仅选择一个行与最低值
我有一个名为后序与值列1个2 3 4 5 6等 我试图:
SELECT * FROM table WHERE such=such ORDER BY postOrder ASC LIMIT 1
但有时我拿错行,像4,而不是3 我想我可以取消该限制条款1,但我必须做更多的工作用PHP。
任何想法如何确保我总是得到下一行,而不必得到所有的行,然后用PHP对它们进行排序? 谢谢。
这将是MySQL的查询,以便从该列选择下一个值MySQL的列仅选择一个行与最低值
我有一个名为后序与值列1个2 3 4 5 6等 我试图:
SELECT * FROM table WHERE such=such ORDER BY postOrder ASC LIMIT 1
但有时我拿错行,像4,而不是3 我想我可以取消该限制条款1,但我必须做更多的工作用PHP。
任何想法如何确保我总是得到下一行,而不必得到所有的行,然后用PHP对它们进行排序? 谢谢。
如果我理解正确你的问题,我认为解决的办法是使用OFFSET这样的:
SELECT * FROM table WHERE such=such ORDER BY postOrder ASC LIMIT 1 OFFSET 2;
随着该偏移,你可以得到正确的值,并做一些分页。
您可以使用偏移来获取下一行(S):
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?
您可以获取中的最后一个值与查询,然后将其添加到主要查询条件。像这样:
SELECT * FROM table
WHERE such = such
AND postOrder IN (SELECT MAX(postOrder) FROM table)
你的问题还不清楚。显示你的表格结构和样本数据以便更好地理解 –
我认为你的问题是重复的:https://stackoverflow.com/questions/5191503/how-to-select-the-last-record-of-a-table-在-SQL –