Database JUNKY

MySQL,MariaDBを中心としたブログです

MySQL 変数を利用したSQLの記述方法

他のDBはよくしらないですが、MySQL系のSQLSQL文中にユーザー変数を含めることができます。この手法を理解すると、洗練された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 ;

月467円のVPS!

代入/参照

こちらは、直接のSQL実行でかなり利用します。私の場合、プログラムはてんでだめなので、変数の値を変更しつつ、検証に利用しております

変数を利用した、オートナンバリング

たった2日でわかるSQL MySQL対応

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 ;

どうでしょうか?以外に簡単だったかと思います。

f:id:hit10231023:20180309104332j:plain