人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPにおいてDBに値が100、90、50、-10という値があり、それを順位ごとにソートして
1位 100
2位 90
3位 50
4位 -10
という風に出力するにはどうしたらいいでしょうか?
後、新規に値が-20と来たらそれを
5位にしたり、値が110とかきたら1位に
したりするにはどうしたらいいでしょうか?
DBはPostgreSQLです。

●質問者: hopefully
●カテゴリ:就職・転職 コンピュータ
✍キーワード:dB PHP postgreSQL ソート
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● ito-yu
●10ポイント

http://www.atmarkit.co.jp/fnetwork/rensai/sql02/sql1.html

SELECT文で並べ替えを行うには?

クエリ結果を数値順に並べるには、ORDER BY句を使います


SELECT * FROM table ORDER BY hoge;


降順であれば「ORDER BY hoge DESC」とします。

ただ、並べ替える項目がINTEGERなどの数値型でないと、数値順に並ばないと思います。

もし文字列型に格納しているようなら、数値型にキャストすればいいと思います。


2 ● ohguma
●40ポイント

http://www.postgresql.jp/document/

PostgreSQL日本語ドキュメント

同じ値を考慮しなければこんな形で順位がとれます。


drop table hoge;

create table hoge (

id int2,

value int2

);

insert into hoge VALUES( 10,100);

insert into hoge VALUES( 20,90);

insert into hoge VALUES( 30,50);

insert into hoge VALUES( 40,-10);

select (select count(*) from hoge h2 where h2.value>=h1.value)||’位’, value from hoge h1;

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ