上一个 - 在mysql中的下一个查询

时间:2009-08-17 09:51:16

标签: php mysql

我在数据库中有一个具有唯一ID的表。 我有一个页面,其中显示了一个特定的ID,并为下一个和前一个ID提供了链接。 我必须通过一个单独的mysql查询得到那些上一个和下一个id。我所拥有的是我们正在处理其数据的特定id。 id不是连续的数字,因为有时一些id也会被删除。(例如1,2,3,7,9,10,15等)

那么如何才能在一个查询中获得这两个上一个和下一个id?

4 个答案:

答案 0 :(得分:6)

SELECT
   (SELECT id FROM YourTable WHERE id < YourId ORDER BY id DESC LIMIT 1) AS prev,
   (SELECT id FROM YourTable WHERE id > YourId ORDER BY id ASC LIMIT 1) AS next
;

将YourId替换为实际ID,并将YourTable替换为有效的表名。如果任何值为NULL,那么给定的没有next / prev元素。

答案 1 :(得分:1)

SELECT  *
FROM    (
        SELECT  *
        FROM    mytable
        WHERE   id >= @current
        ORDER BY
                id
        LIMIT 2
        ) q1
UNION ALL
SELECT  *
FROM    (
        SELECT  *
        FROM    mytable
        WHERE   id < @current
        ORDER BY
                id DESC
        LIMIT 1
        ) q2
ORDER BY
        id

答案 2 :(得分:0)

你可以试试像 -

SELECT id FROM yourtable where id&gt; '$ current_page_id'下一个限制1

SELECT id FROM yourtable where id&lt; '$ current_page_id'上一个

的LIMIT 1

你可以按照@RaYell的答案进行一次查询。

答案 3 :(得分:-1)

SELECT MAX(id) FROM mytable WHERE id < 11
  • 要获得11之前的ID

    SELECT MIN(id)FROM mytable WHERE id&gt; 11

  • 获取id AFTER 11