2017.3.12
2020.1.7

SELECTの結果に行番号(row_num)を付加する

MySqlでSELECTの結果に行番号を付加したかったのでその方法です。

行番号の取得は各DBで結構方法が違いますが、MySQLの場合、ユーザー変数を使ったやり方が一般的なようです。

コード

行番号を取得するコードは以下の通り。


SET @rownum=0; 
SELECT @rownum:=@rownum+1 as row_num, name FROM tbl;

ユーザー変数「@rownum」に値をセットするには、通常の「=」は比較演算子と判定されるため「:=」を使います。

実行結果

SQLの実行結果は以下の通りです。

+---------+----------+
| row_num | name     |
+---------+----------+
|       1 | AAA      |
|       2 | BBB      |
|       3 | CCC      |
|       4 | DDD      |
|       5 | EEE      |
|       6 | FFF      |
|       7 | GGG      |
|       8 | HHH      |
|       9 | III      |
|      10 | JJJ      |
+---------+----------+

MySQL】関連記事