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

mysql:9362

From: seiji takegata <seiji takegata <takegata@xxxxxxxxxx>>
Date: Fri, 14 May 2004 03:54:33 +0900
Subject: [mysql 09362] Re: 何行目か知りたいとき

竹形です。またもや自己レスです。

> ある行が、selectされた行の中の何行目にあたるかを変数(または関数?)
> で取得して、それをUPDATE文で使えればいいと思うことがよくあるのです
> が、該当する機能がなかなか見つけられません。
> 
> たとえば、こんなデータがあって
> mysql> select id,display_order,category from test where category=8;
> +----+---------------+----------+
> | id | display_order | category |
> +----+---------------+----------+
> | 56 |          NULL |        8 |
> | 58 |          NULL |        8 |
> | 59 |          NULL |        8 |
> | 60 |          NULL |        8 |
> +----+---------------+----------+
> 
> こんなふうにしたいのですが、
> 
> +----+---------------+----------+
> | id | display_order | category |
> +----+---------------+----------+
> | 56 |             1 |        8 |
> | 58 |             2 |        8 |
> | 59 |             3 |        8 |
> | 60 |             4 |        8 |
> +----+---------------+----------+
> 
> こういう場合はどうしたらいいんでしょう?
> 

mysql> set @a:=0;update topic set display_order = @a:=@a+1 where category=8;

で、できました。

oracleにはROWNUMってのがあるんですねぇ。

--
seiji takegata
takegata@xxxxxxxxxx

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

      9361 2004-05-14 03:13 [seiji takegata <take] 何行目か知りたいとき                    
->    9362 2004-05-14 03:54 ┗[seiji takegata <take]