MySQL/SELECTの出力に連番を付ける方法
の編集
Top
/
MySQL
/
SELECTの出力に連番を付ける方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * MySQLでSELECTの出力に連番を付ける方法 [#u093a375] SELECTした結果に対して先頭などに連番を付けたい場合は、以下のようにSQLを発行することにより実現できます。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#c670cc6d] -[[PostgreSQLでSELECTの出力に連番を付ける方法>PostgreSQL/SELECTの出力に連番を付ける方法]] * SELECTの結果に連番を付ける [#ya1e2d07] 以下に2種類方法を記します。 ** 変数を設定しSELECT文を実行 [#o5088ba9] + テスト用のテーブルを作成 mysql> create table t1 (a int, b int, c int); Query OK, 0 rows affected (0.01 sec) #br + 3行データをインサート mysql> insert into t1 values(1,10,100),(2,20,200),(3,30,300); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 #br + 変数@nmuに0を代入 mysql> set @num := 0; Query OK, 0 rows affected (0.00 sec) #br + 以下のSQLを実行しSELECT結果に連番を付与しています mysql> select (@num := @num + 1) as no, t1.* from t1; +------+------+------+------+ | no | a | b | c | +------+------+------+------+ | 1 | 1 | 10 | 100 | | 2 | 2 | 20 | 200 | | 3 | 3 | 30 | 300 | +------+------+------+------+ 3 rows in set (0.00 sec) ** 1行で実現する方法 [#j14698d8] 上記では、変数を指定した後、SELECTを実行していました。~ 以下の例は、1行で実現しています。 mysql> select @num := @num + 10 as no, t1.* from (select @num := 100) as dmy, t1; +------+------+------+------+ | no | a | b | c | +------+------+------+------+ | 110 | 1 | 10 | 100 | | 120 | 2 | 20 | 200 | | 130 | 3 | 30 | 300 | +------+------+------+------+ 3 rows in set (0.00 sec) #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * MySQLでSELECTの出力に連番を付ける方法 [#u093a375] SELECTした結果に対して先頭などに連番を付けたい場合は、以下のようにSQLを発行することにより実現できます。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#c670cc6d] -[[PostgreSQLでSELECTの出力に連番を付ける方法>PostgreSQL/SELECTの出力に連番を付ける方法]] * SELECTの結果に連番を付ける [#ya1e2d07] 以下に2種類方法を記します。 ** 変数を設定しSELECT文を実行 [#o5088ba9] + テスト用のテーブルを作成 mysql> create table t1 (a int, b int, c int); Query OK, 0 rows affected (0.01 sec) #br + 3行データをインサート mysql> insert into t1 values(1,10,100),(2,20,200),(3,30,300); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 #br + 変数@nmuに0を代入 mysql> set @num := 0; Query OK, 0 rows affected (0.00 sec) #br + 以下のSQLを実行しSELECT結果に連番を付与しています mysql> select (@num := @num + 1) as no, t1.* from t1; +------+------+------+------+ | no | a | b | c | +------+------+------+------+ | 1 | 1 | 10 | 100 | | 2 | 2 | 20 | 200 | | 3 | 3 | 30 | 300 | +------+------+------+------+ 3 rows in set (0.00 sec) ** 1行で実現する方法 [#j14698d8] 上記では、変数を指定した後、SELECTを実行していました。~ 以下の例は、1行で実現しています。 mysql> select @num := @num + 10 as no, t1.* from (select @num := 100) as dmy, t1; +------+------+------+------+ | no | a | b | c | +------+------+------+------+ | 110 | 1 | 10 | 100 | | 120 | 2 | 20 | 200 | | 130 | 3 | 30 | 300 | +------+------+------+------+ 3 rows in set (0.00 sec) #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する