[前][次][番号順一覧][スレッド一覧]

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]