PhP4.2 mysql4 に関して


mysqlについて質問です。
昇降順に関する質問です。

登録してあるmysql情報を下記とします。
カラムが名前、点数1、点数2とします。

並び替えをして、順位を現したいです。

(test)テーブル
----------------
(名前)(点数1)
a     5    
b     2    
c     4    
d     3    
e     1    
----------------
これを(点数1)で降順にします。
e b d c a
"SELECT * FROM test WHERE cate='点数1' ORDER BY in01 DESC"

このような順番にします。
これを例えば、aなら「1」dなら「3」という風に
並べ替えた後の順番の数字を出すにはどうすればいいですか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/10/10 21:02:49
  • 終了:2007/10/10 22:17:21

回答(1件)

id:chuken_kenkou No.1

chuken_kenkou回答回数722ベストアンサー獲得回数542007/10/10 22:05:26

ポイント60pt

提示されたSQLは、下記ですが、、、

SELECT * 
 FROM test 
 WHERE cate='点数1' 
 ORDER BY in01 DESC"

説明にない「cate」や「in01」という列名が使われていますけど?

MySQL4といっても、4.0と4.1は、大きく違います。

4.1からunicodeが実装されたり、サブクエリが実装されたりしています。

MySQL 4.1なら、自己結合&サブクエリを使うといった方法があるのですが、4.0なら以下の方法が簡単で分かりやすいと思います。

ユーザ変数を使って、行の取り出し時に+1させる方法です。

set @rownum=0;
SELECT 名前,点数1,@rownum:=@rownum+1 as rounum 
 FROM test
 -- WHERE cate='点数1'
 -- ORDER BY in01 DESC
 ORDER BY 点数1 DESC
;

http://q.hatena.ne.jp/ダミー

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

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

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

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

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