2008/07/10

MySQLで行番号

MySQLで行番号を表示したいです。

データベースにMySQLを使っていて、INSERTするときにソート番号を得たいときなど、「SELECT時に行番号を表示したい」ということがたまにあります。


ずいぶん昔にそんなことがあって、その時は、一度Excelにコピペして、行番号をつけて、マクロでSQL文を生成、なんてことをやったのですが、MySQLではユーザ変数をつかうことで行番号を表示することが可能でした。


mysql> set @i=0;
mysql> select (@i:=@i+10) as position, name from users;
+----------+-------+
| position | name |
+----------+-------+
| 10 | hoge1 |
| 20 | hoge2 |
| 30 | hoge3 |
| 40 | hoge4 |
| 50 | hoge5 |
+----------+-------+

変数なんて初めて知りました(汗



ユーザによって定義された変数に値を保存し、後で参照することができます。これで1つのステートメントから次のステートメントに変数を移行させることができます。


MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.4 ユーザによって定義された変数


0 件のコメント: