MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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句などの条件式でその変数を再利用できます。同じ値を複数のクエリで使い回したい場合や、条件を動的に変更したい場合に非常に便利な機能なので、ぜひ活用してみてください。

  1. 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

  2. MySQLでデータベース内のテーブル数を表示するクエリの書き方

    INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す