【MySQL】ユーザー変数を使ってSELECTに行番号を付加する方法
MySQL ではユーザー変数を定義しそれを SELECT 文のなかで使えます。
以下のSQLの実行は行番号を付加する例です。
SET命令でユーザー変数 @NUM を宣言し、その変数を SELECT で使用しています。
結果表示を見れば、行番号として値が表示されていることが分かります。
SET命令と SELECT文の2行が少し気になるので、 調べてみたら以下の様に、SET命令の部分をダミーのテーブルでの宣言として一体化できます。
GROUP BY や ORDER BY 句を行った場合にも行番号は付加できる様です。
但し、ユーザ変数の計算部分の処理が1行毎最初に処理される様に思いますが、 クエリー結果でその処理順番が保障されるとも限りません。 この辺りは、個々の場合で調べる必要があります。
■関連記事
⇒【MySQL】ダミーテーブルをUNIONで連結してコード表を作成する方法
⇒【MySQL】ユーザー変数を使ってSELECTに行番号を付加する方法
⇒【MySQL】カラム名を囲むバッククオートについて
⇒【MySQL】UNIONMINUSが無いので、代わりにNOTEXISTSを使う方法について
⇒【MySQL】ユーザ変数を使って連番や、連続日付を取得する方法について
以下のSQLの実行は行番号を付加する例です。
SET命令でユーザー変数 @NUM を宣言し、その変数を SELECT で使用しています。
結果表示を見れば、行番号として値が表示されていることが分かります。
SET命令と SELECT文の2行が少し気になるので、 調べてみたら以下の様に、SET命令の部分をダミーのテーブルでの宣言として一体化できます。
GROUP BY や ORDER BY 句を行った場合にも行番号は付加できる様です。
但し、ユーザ変数の計算部分の処理が1行毎最初に処理される様に思いますが、 クエリー結果でその処理順番が保障されるとも限りません。 この辺りは、個々の場合で調べる必要があります。
■関連記事
⇒【MySQL】ダミーテーブルをUNIONで連結してコード表を作成する方法
⇒【MySQL】ユーザー変数を使ってSELECTに行番号を付加する方法
⇒【MySQL】カラム名を囲むバッククオートについて
⇒【MySQL】UNIONMINUSが無いので、代わりにNOTEXISTSを使う方法について
⇒【MySQL】ユーザ変数を使って連番や、連続日付を取得する方法について
コメント