简体   繁体   English

获取mysql查询的上一个和下一个id值

[英]Get previous & next id value of mysql query

SELECT * FROM TableName WHERE name='test'

Once the above query is executed I want the previous and next id values. 执行上述查询后,我想要上一个和下一个id值。 Ofcourse they will not be incremental. 当然,他们不会增量。 How can I get the next and previous ids based on the where condition. 如何根据where条件获取下一个和上一个id。

试试下面

 select * from Tablename where name = 'test' AND id = (select min(id) from Tablename  where id > 4) OR id = (select max(id) from Tablename  where id < 4)
SELECT
    * 
FROM
    TableName 
WHERE 
    id = (SELECT MIN(id) FROM TableName where id > 2) 
    AND id = (SELECT MAX(id) FROM TableName where id < 2)

OR you can use Limit 或者您可以使用Limit

SELECT * FROM TableName WHERE `id` > 2 ORDER BY `id` ASC LIMIT 1
UNION 
SELECT * FROM TableName WHERE `id` < 2 ORDER BY `id` DESC LIMIT 1

I believe you can use mysql_data_seek() if you are using php 我相信如果你使用的是php,你可以使用mysql_data_seek()

http://php.net/manual/en/function.mysql-data-seek.php http://php.net/manual/en/function.mysql-data-seek.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM