2012-07-10 68 views
0

我想要的是以下内容,我不知道是否可能,但我希望有人能帮助我。mysql下订单

我有2个查询第一个是查询来选择指定的记录。

第二个查询是确定下一条记录。我知道我可以做到这一点:

SELECT * FROM table WHERE id > given_id ORDER BY id LIMIT 1 

现在的问题是,ORDER BY是变量(访问者可以更改排列顺序)

我只得到了id和表进行排序(由php给出)。我想知道下一条记录,当排序顺序是例如,ORDER BY日期或ORDER BY时间等等。

有没有办法与MYSQL做到这一点?

+0

什么决定了下一个记录? ID + 1? – Samson 2012-07-10 09:28:51

+0

是的,取决于排序顺序 – 2012-07-10 09:31:50

+0

是的,当然可以这样做。你尝试过什么吗?有什么问题? – 2012-07-10 09:32:06

回答

0

你可以做到这一点

-- skip 0, load one (same as LIMIT 1) 
SELECT * FROM table WHERE id > given_id 
ORDER BY id 
LIMIT 0,1 

-- skip one, load one 
SELECT * FROM table WHERE id > given_id 
ORDER BY id 
LIMIT 1,1 
+0

谢谢这就是我需要的 – 2012-07-10 09:46:08

0

为什么你需要2个查询?使用一个查询 SELECT * FROM table WHERE id> given_id ORDER BY ?? (可能是页面大小限制) ,然后从上述结果集中获取记录。

0

试试这个:

select * from table where id = (select min(id) from table where id > given_id);