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

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

MySQLでテーブルの行内にNULL値が含まれているかどうかを確認するには、「IS NULL」演算子を使用します。WHERE句と組み合わせることで、特定のカラムがNULLである行を簡単に抽出できます。ここでは、実際にテーブルを作成し、NULL値を含む行を検索する手順を順番に見ていきましょう。

サンプルテーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table demo86
    -> (
    -> value1 varchar(20)
    -> ,
    -> value2 varchar(20)
    -> );
Query OK, 0 rows affected (2.77 sec)

レコードの挿入

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。わざとNULLを含むデータも登録しておきます。

mysql> insert into demo86 values(null,null);
Query OK, 1 row affected (0.34 sec)

mysql> insert into demo86 values(null,'John');
Query OK, 1 row affected (0.16 sec)

mysql> insert into demo86 values('David','Mike');
Query OK, 1 row affected (0.17 sec)

mysql> insert into demo86 values('Sam',null);
Query OK, 1 row affected (0.15 sec)

レコードの表示

SELECT文を使って、テーブル内のレコードを表示してみましょう。

mysql> select *from demo86;

実行結果は以下の通りです。

出力

+--------+--------+
| value1 | value2 |
+--------+--------+
| NULL   | NULL   |
| NULL   | John   |
| David  | Mike   |
| Sam    | NULL   |
+--------+--------+
4 rows in set (0.00 sec)

NULL値を含む行を確認するクエリ

行内のいずれかの値がNULLであるレコードを抽出するには、以下のようなクエリを実行します。「OR」演算子を使うことで、value1またはvalue2のどちらかにNULLが含まれる行をすべて取得できます。

mysql> select *from demo86
    -> where value1 is null or value2 is null;

実行結果は以下の通りです。NULLを含む3行だけが抽出されていることがわかります。

出力

+--------+--------+
| value1 | value2 |
+--------+--------+
| NULL   | NULL   |
| NULL   | John   |
| Sam    | NULL   |
+--------+--------+
3 rows in set (0.00 sec)

注意点

NULLの判定には「= NULL」ではなく必ず「IS NULL」を使用してください。NULLは「値が不明である」ことを意味する特殊な状態のため、通常の比較演算子では正しく評価されません。また、両方のカラムがNULLである行だけを取得したい場合は、「OR」の代わりに「AND」演算子を使用します。

  1. MySQLでカラムのデフォルト値をNULLに設定する方法

    MySQLでは、DEFAULT NULLを指定することで、カラムのデフォルト値をNULLに設定できます。本記事では、実際にテーブルを作成し、デフォルト値NULLがどのように機能するかを具体的な例とともに解説します。デフォルト値がNULLのテーブルを作成するまず、DEFAULT NULLを指定したテーブルを作成します。mysql> create table DemoTable1440 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(2

  2. MySQLで重複レコードを含むテーブルから特定の値を1件だけ削除する方法

    MySQLでテーブル内のレコードを削除するにはDELETE文を使用します。しかし、同じ値の重複レコードが複数存在する場合に、そのうち1件だけを削除したいケースがあります。そんなときは、LIMIT句を組み合わせることで、削除対象の件数を制限できます。基本構文delete from yourTableName where yourColumnName=yourValue limit 1;この構文では、WHERE句で削除対象の条件を指定し、LIMIT 1によって該当するレコードのうち最初の1件のみを削除します。実際にテーブルを作成して確認してみようまず、サンプル用のテーブルを作成します。mysql&