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

MySQLで値を代入していないユーザー変数を参照すると何が返る?NULLの挙動を解説

MySQLでは、明示的に値が代入されていないユーザー変数を参照した場合、NULLが返されます。つまり、そのような変数の値はNULLとして扱われるということです。

ユーザー変数のNULLの挙動を確認する

実際に、複数のユーザー変数を参照する次のSQLを実行して、その動作を見てみましょう。

mysql> Select @X, @Y, @Z, @S, @G;
+------+-------+----------+------+------+ 
| @X   | @Y    | @Z       | @S   | @G   | 
+------+-------+----------+------+------+ 
| Ram  | Shyam | Students | 5000 | NULL | 
+------+-------+----------+------+------+ 
1 row in set (0.00 sec)

結果の解説

上記の結果セットを見ると、@X、@Y、@Z、@Sには事前に明示的な値が代入されているため、「Ram」「Shyam」「Students」「5000」という各値が正しく返されています。

一方で、@Gには一切値が代入されていません。そのため、この変数を参照するとNULLが返されます。これは、@Gの内部の値自体がNULLであることを意味しています。

知っておくと良いポイント

ユーザー変数に値を代入するには、SET文やSELECT文を使用します。例えば「SET @G = 100;」のように実行すれば、以降の参照ではその値が返されるようになります。

宣言時に初期化していないユーザー変数には自動的にNULLが設定されるため、WHERE句や計算式などで意図せずNULLを扱ってしまうリスクがあります。変数を使用する前に必ず値を代入しておくことで、予期しないNULLによるエラーやバグを防ぐことができます。

  1. MySQLにおける「!=NULL」と「IS NOT NULL」の違いとは?

    MySQLでは、値を!=NULLと比較すると、結果は必ずNULLになります。つまり、!=NULLという比較は意味を持ちません。NULLは「不明な値」を表すため、通常の比較演算子では判定できないのです。NULL値を判定するには、専用の演算子であるIS NOT NULLを使用します。ここでは、!=NULLとIS NOT NULLの違いを実際に確認するために、まずテーブルを作成します。テーブルの作成まず、次のコマンドでテーブルを作成します。mysql> create table DemoTable1970     (    

  2. MySQLでテーブルの単一行にNULL値が含まれているか確認する方法

    MySQLでテーブルの行内にNULL値が含まれているかどうかを確認するには、「IS NULL」演算子を使用します。WHERE句と組み合わせることで、特定のカラムがNULLである行を簡単に抽出できます。ここでは、実際にテーブルを作成し、NULL値を含む行を検索する手順を順番に見ていきましょう。 サンプルテーブルの作成 まず、以下のようにテーブルを作成します。 例 mysql> create table demo86 -> ( -> value1 varchar(20) -> , -> value2 varchar(20)