mysql:3140
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sat, 3 Feb 2001 18:15:20 +0900
Subject: [mysql 03140] Re: ソート結果の順位を一つのカラムに取り込みたいのですが
とみたです。 [競馬王 <jra_hunter@xxxxxxxxxx>さんが] ["[mysql 03137] ソート結果の順位を一つのカラムに取り込みたいのですが" で曰く] > select....FROM Test_table ORDER BY col_name1 DESC > とソートした結果の順位を同じ Test_table の col_name2 に代入したいのですが、 > どうしたらいいでしょう。 > > Test_table > 行番号 | col_name1 col_name2 > 1 | 10000 1 > 2 | 1000 2 > 3 | 100 3 SQL だけでは難しいですね。他のプログラム言語を介せばいいんだけど…。 無理矢理やるならこんな方法はどうでしょう? LOCK TABLES Test_table WRITE; CREATE TEMPORARY TABLE tmp (行番号 INT, col_name1 INT, col_name2 INT AUTO_INCREMENT, INDEX(col_name2)); INSERT INTO tmp (行番号, col_name1) SELECT 行番号, col_name1 FROM Test_table ORDER BY col_name1 DESC; REPLACE INTO Test_table (行番号, col_name1, col_name2) SELECT 行番号, col_name1, col_name2 FROM tmp; UNLOCK TABLES; Test_table の行番号が UNIQUE じゃないといけませんが…。 # あまりちゃんと検証してませんが…(^^; --- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
3137 2001-02-03 16:59 [競馬王 <jra_hunter@x] ソート結果の順位を一つのカラムに取り込みたいのですが -> 3140 2001-02-03 18:15 ┗[とみたまさひろ <tomm] 3144 2001-02-04 05:30 ┗[競馬王 <jra_hunter@x] 3145 2001-02-04 06:07 ┗[<endo_t@xxxxxxxxxx> ] 3147 2001-02-04 16:05 ┗[競馬王 <jra_hunter@x] 3148 2001-02-04 21:50 ┣[競馬王 <jra_hunter@x] 3149 2001-02-04 23:46 ┗[<endo_t@xxxxxxxxxx> ] 3150 2001-02-05 00:22 ┗[競馬王 <jra_hunter@x] 3151 2001-02-05 00:31 ┗[<endo_t@xxxxxxxxxx> ] 3153 2001-02-05 01:10 ┗[競馬王 <jra_hunter@x]