MySQLクエリの入力パラメータ(変数)の構文とは?SETコマンドの使い方を解説
MySQLで変数(ユーザー定義変数)を設定するには、SETコマンドを使用します。変数は「@」を付けた名前で定義でき、クエリの入力パラメータとしてWHERE句などで活用できます。
基本構文
変数の設定と使用の基本的な構文は以下の通りです。
set @yourVariableName:=yourValue; select *from yourTableName where yourColumnName=@yourVariableName;
サンプルテーブルの作成
まず、動作確認用のテーブルを作成します。
mysql> create table DemoTable
(
Id int,
FirstName varchar(20),
LastName varchar(20)
);
Query OK, 0 rows affected (0.83 sec)レコードの挿入
次に、INSERTコマンドを使ってテーブルにデータを挿入します。
mysql> insert into DemoTable values(10,'Carol','Taylor'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(20,'John','Doe'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(30,'John','Smith'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(40,'David','Miller'); Query OK, 1 row affected (0.18 sec)
登録データの確認
SELECTコマンドでテーブル内のレコードを表示します。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+------+-----------+----------+ | Id | FirstName | LastName | +------+-----------+----------+ | 10 | Carol | Taylor | | 20 | John | Doe | | 30 | John | Smith | | 40 | David | Miller | +------+-----------+----------+ 4 rows in set (0.00 sec)
ユーザー定義変数を使った検索
それでは、MySQLでユーザー定義変数を設定し、実際にクエリで使用してみましょう。
mysql> set @myId:=30; Query OK, 0 rows affected (0.00 sec) mysql> select *from DemoTable where Id=@myId;
実行結果は以下の通りです。変数@myIdに設定した値(30)に一致するレコードのみが取得できています。
+------+-----------+----------+ | Id | FirstName | LastName | +------+-----------+----------+ | 30 | John | Smith | +------+-----------+----------+ 1 row in set (0.00 sec)
このように、SETコマンドで変数に値を代入しておけば、WHERE句などの条件式でその変数を再利用できます。同じ値を複数のクエリで使い回したい場合や、条件を動的に変更したい場合に非常に便利な機能なので、ぜひ活用してみてください。
-
MySQLにおけるJavaのlong型に相当するデータ型は何?BIGINTとの対応を解説
MySQLにおけるJavaのlong型に相当する型は「BIGINT」MySQLの変数(カラム)のコンテキストにおいて、Javaのlong型に相当するデータ型はBIGINTです。Javaのlong型は8バイトのサイズを持ちますが、MySQLのBIGINTもまったく同じく8バイトを使用します。そのため、Javaのlong型で扱える値は、範囲を超えることなくそのままBIGINTカラムに格納することが可能です。Javaのlong型のデモ以下は、Javaのlong型が扱える最大の正の値を出力するサンプルコードです。public class JavaLongDemo { public static
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す