Mysqlの5で、OracleのRow_Numberみたいな

挙動をしたい場合は、どうしたらいいのでしょうか?

SELECTした内容に順序を付与したいです。

回答の条件
  • 1人10回まで
  • 登録:2007/10/19 17:37:39
  • 終了:2007/10/20 14:19:12

回答(2件)

id:chuken_kenkou No.1

chuken_kenkou回答回数722ベストアンサー獲得回数542007/10/19 19:46:09

ポイント35pt

MySQLには、通番を付ける機能がないため、自前で付ける必要があります。

通番を付けるには、ユニークになるキーを持っている必要があります。

1.方法1

 ユーザ変数を利用する。

set @rownum=0;
select
  @rownum:=@rownum+1 as rownum,
  c1,c2
 from tbl1
 order by c1

2.方法2

自己結合し、キー値未満の件数を求め、その件数を通番に利用する。

select
 (select count(*)+1
   from tbl1
   where c1<x.c1) as rownum,
  c1,c2
 from tbl1 as x
</pre>
id:hopefully

ありがとうございます

試してみますw

2007/10/20 12:59:42
id:kunyami No.2

kunyami回答回数24ベストアンサー獲得回数42007/10/19 17:55:04

ポイント35pt

こんにちは

set @row_num = 0;

select (@row_num:=@row_num+1) as row_number, col1

from tbl1;

などとすればできますよ。

id:hopefully

ありがとうございます。

試しますw

2007/10/20 13:00:19

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

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

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

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

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