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

MySQLのIS演算子とIS NOT演算子の使い方をわかりやすく解説

MySQLでは、IS演算子とIS NOT演算子を使用することで、ある値が特定のブール値(TRUE、FALSE、UNKNOWN)と一致するかどうかを判定できます。特にNULL値の扱いにおいて便利な演算子です。

IS演算子とは

IS演算子は、指定した値がブール値と一致するかどうかをテストします。構文は以下の通りです。

Val IS Boolean_val
  • Val:テスト対象となる値です。
  • Boolean_val:比較対象となるブール値で、TRUE、FALSE、UNKNOWN のいずれかを指定できます。

IS NOT演算子とは

IS NOT演算子は、IS演算子の否定形であり、指定した値がブール値と一致しないかどうかをテストします。構文は以下の通りです。

Val IS NOT Boolean_val

こちらも同様に、Boolean_valにはTRUE、FALSE、UNKNOWNのいずれかを指定します。

実際の使用例

以下のSQLステートメントを実行すると、各演算子の動作を確認できます。

mysql> Select 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;
+-----------+------------+-----------------+
| 1 IS TRUE | 0 IS FALSE | NULL IS UNKNOWN |
+-----------+------------+-----------------+
|         1 |          1 |               1 |
+-----------+------------+-----------------+
1 row in set (0.00 sec)

この結果から、「1はTRUEである」「0はFALSEである」「NULLはUNKNOWNである」という評価がすべて真(1)となっていることがわかります。

次に、IS NOT演算子を使った例を見てみましょう。

mysql> Select 1 IS NOT TRUE, 0 IS NOT FALSE, NULL IS NOT UNKNOWN;
+---------------+----------------+---------------------+
| 1 IS NOT TRUE | 0 IS NOT FALSE | NULL IS NOT UNKNOWN |
+---------------+----------------+---------------------+
|             0 |              0 |                   0 |
+---------------+----------------+---------------------+
1 row in set (0.00 sec)

mysql> Select 0 IS NOT TRUE, 1 IS NOT FALSE, NULL IS NOT UNKNOWN;
+---------------+----------------+---------------------+
| 0 IS NOT TRUE | 1 IS NOT FALSE | NULL IS NOT UNKNOWN |
+---------------+----------------+---------------------+
|             1 |              1 |                   0 |
+---------------+----------------+---------------------+
1 row in set (0.00 sec)

最初のクエリでは、「1はTRUEではない」「0はFALSEではない」「NULLはUNKNOWNではない」という評価がすべて偽(0)になっています。一方、2番目のクエリでは「0はTRUEではない」「1はFALSEではない」が真(1)となり、「NULLはUNKNOWNではない」のみ偽(0)という結果になっています。

まとめ

ISおよびIS NOT演算子は、値がTRUE・FALSE・UNKNOWNのいずれかに該当するかを明示的に判定するための演算子です。通常の「=」や「!=」では正しく比較できない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. C言語のprintf()における%n書式指定子とは?出力文字数を格納する特殊な機能を解説

    C言語のprintf()における%n書式指定子とは? C言語には、%nという特殊な書式指定子が用意されています。一般的な書式指定子(%dや%sなど)が画面へ値を出力するのに対し、%nは何も出力しません。その代わり、対応する引数として渡されたポインタが指し示す変数に、「%nが出現するまでにprintf()が出力した文字数」を格納します。 ポイント: %n自体は画面に何も表示しません。文字列の出力には、別途printf()関数を呼び出して行います。 基本的な使用例 #include<stdio.h> int main() { int s; printf(The val