MySQL 変数を利用したSQLの記述方法
他のDBはよくしらないですが、MySQL系のSQLをSQL文中にユーザー変数を含めることができます。この手法を理解すると、洗練されたSQLを記述することができます。 変数の利用は、SET文を用いる方法と、SELECT ~ INTO を用いる2種類の方法があります
以降、それぞれのケースに合わせた変数の使い方を説明します
代入
SET文を利用する方法と、SELECT INTOを使う方法を説明しております
SET文を利用する方法
SET @DATE=CURRENT_TIMESTAMP ; SELECT @DATE AS now_date ;
SELECT INTO を利用する方法
SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)
主にストアドプロシージャで利用する方法になりますが、通常のSQLでも利用できます
SELECT CURRENT_TIMESTAMP INTO @DATE ; SELECT @DATE AS now_date ;
複数の変数にSELECT INTO 文でSETする
SELECT CURRENT_TIMESTAMP,CURREN_DATE INTO @DATETIME,@DATE ;
代入/参照
こちらは、直接のSQL実行でかなり利用します。私の場合、プログラムはてんでだめなので、変数の値を変更しつつ、検証に利用しております
変数を利用した、オートナンバリング
SET @num=0; SELECT @num:=@num +1 AS number,id FROM users ORDER BY id DESC LIMIT 10;
変数を検索の値として設定する
SET @num= 1; SELECT * FROM users WHERE id = @num ;
どうでしょうか?以外に簡単だったかと思います。