0

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

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

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

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

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

我只得到了要排序的 id 和表格(由 php 给出)。当排序顺序为例如 ORDER BY date 或 ORDER BY time 等时,我也想知道下一条记录。

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

4

3 回答 3

0

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

于 2012-07-10T09:32:10.787 回答
0

试试这个:

select * from table  where id = (select min(id) from table where id > given_id);
于 2012-07-10T09:39:30.463 回答
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 
于 2012-07-10T09:44:12.817 回答