3

2 つのフィールドを持つ「user」という 1 つのテーブルを持つデータベースがあります。

"id" (type: INTEGER, PRIMARY KEY) 
"name" (type: VARCHAR(32))

「user」テーブルから「id」の 2 番目に高い値を取得する標準 SQL クエリを作成したいと考えています。返される値は、列名「id」を使用して表す必要があります。

私はこれを試しましたが、それは私にすべてのIDを与えます:

SELECT `user`.`id`
FROM `user`
ORDER BY `user`.`id` ASC
LIMIT 0 , 30

私のテーブルのいくつかのサンプルデータ:

id      name
----------------
1       john
2       david
3       mike

「2」を取得したいのですが、今は取得しています:

id
----
1
2
3

私はPHPの助けを借りてそれを行うことができますが、mysql(SQL)の方法を知りたいです. ありがとう

4

5 に答える 5

2
SELECT id FROM user ORDER BY id ASC LIMIT 1, 1



select max(id) from user where id < (select max(id) from user);


select max(id) from user where id  not in (Select max(id) from user);
于 2013-10-18T17:33:17.767 に答える
1
SELECT id
FROM `user`
ORDER BY id ASC
LIMIT 1, 1

を使用limitすると、オフセットと返されるレコードの数を設定できます。

于 2013-10-18T17:31:16.733 に答える
0

どうだい

Select max(id) from user
where id <> (select max(id) from user)
于 2013-10-18T17:37:27.050 に答える