以下のSQLを実行すると

select (select count(*) from total_point h2 where h2.total_point>=h1.total_point) as zyun, total_point, point_count from total_point h1 where total_point > '6000' order by zyun ;

以下のように結果が返ります。
zyun | total_point | point_count
------+-------------+-------------
1 | 1038100 | 1
2 | 750000 | 1
3 | 550000 | 1
4 | 547500 | 1
5 | 90000 | 1
6 | 80000 | 1
7 | 60000 | 3
8 | 50000 | 3
9 | 10000 | 1

ここで、zyunが9から5個だけを抽出したい
場合はorder by desc limit 5で取得出来るのですがその結果をPHP側で逆順に取得する場合は
どうしたらいいですか??
まあSQLで出来れば一番良いのですが。
わかりますか??

回答の条件
  • 1人2回まで
  • 登録:2006/04/10 12:02:03
  • 終了:2006/04/10 12:40:10

回答(2件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142006/04/10 12:15:22

ポイント35pt

SELECT * FROM (select (select count(*) from total_point h2 where h2.total_point>=h1.total_point) as zyun, total_point, point_count from total_point h1 where total_point > '6000' order by zyun DESC LIMIT 5) AS x ORDER BY zyun;

とかじゃだめですか。

AS x はDBMSによっては不要かも知れませんが念のため

id:hopefully

ありがとうございます。

2006/04/10 12:39:11
id:llusall No.2

llusall回答回数505ベストアンサー獲得回数612006/04/10 12:34:49

ポイント35pt

limit 5 で取得したデータを、副問合わせで、もう一度order by すれば良いかと思います。

select * from

(

select ・・・ order by zyu desc limit 5

)

order by zyu

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません