1

次のように2つのフィールドを持つテーブルがあります。

name    score
xyz      300
pqr      200
abc      300
mno      100
erp      200
yut      200

MySQLクエリを使用して、上記の表から2番目に高いスコアをすべて取得するにはどうすればよいですか. 次のようにしてみました、

SELECT name, MAX( `score` )
FROM score
WHERE score < (
SELECT MAX( score )
FROM score )

しかし、それは単一の値を返します。

期待される結果 、

name    score
pqr      200
erp      200
yut      200

助けてください

4

4 に答える 4

1

以下を使用できます。

SELECT 
  `name`,
  `score`
FROM 
  `score`
WHERE 
  `score`=(SELECT DISTINCT `score` FROM `score` ORDER BY `score` DESC LIMIT 1,1)

ヒント: テーブルとその列に同じ名前を付けると、複雑なクエリで問題が発生します (DBMS ではなく、あなたにとって)

于 2013-09-11T06:30:11.330 に答える