0
SELECT * FROM TableName WHERE name='test'

上記のクエリが実行されたら、前と次のid値が必要です。もちろん、それらは増分ではありません。where条件に基づいて次および前のIDを取得するにはどうすればよいですか。

4

3 に答える 3

1
SELECT
    * 
FROM
    TableName 
WHERE 
    id = (SELECT MIN(id) FROM TableName where id > 2) 
    AND id = (SELECT MAX(id) FROM TableName where id < 2)

または、使用できます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
于 2013-03-04T09:58:54.327 に答える
1

以下で試してください

 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)
于 2013-03-04T09:48:13.153 に答える
0

PHPを使用している場合は、 mysql_data_seek() を使用できると思います

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

于 2013-03-04T09:55:47.087 に答える