2 番目に高いレコードを探していたとしましょう。
サンプル テーブル:
CREATE TABLE `my_table` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`value` int(10),
PRIMARY KEY (`id`)
);
INSERT INTO `my_table` (`id`, `name`, `value`) VALUES (NULL, 'foo', '200'), (NULL, 'bar', '100'), (NULL, 'baz', '0'), (NULL, 'quux', '300');
2 番目に高い値はfoo
です。この結果を得る方法はいくつありますか?
明らかな例は次のとおりです。
SELECT name FROM my_table ORDER BY value DESC LIMIT 1 OFFSET 1;
他の例を思いつきますか?
これを試してみましたLIMIT & IN/ALL/ANY/SOME subquery
が、サポートされていません。
SELECT name FROM my_table WHERE value IN (
SELECT MIN(value) FROM my_table ORDER BY value DESC LIMIT 1
) LIMIT 1;