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

MySQLでNULL値を特定の値に置き換える方法:IFNULL()関数の使い方

MySQLでは、IFNULL()関数を使用することで、列に含まれるNULL値を検出し、任意の特定の値に置き換えて表示することができます。この記事では、サンプルテーブルの作成からIFNULL()を使ったクエリの実行まで、具体的な手順をわかりやすく解説します。

サンプルテーブルの作成

まず、以下のコマンドでテーブルを作成しましょう。ここでは、名前を格納する「FirstName」列を持つテーブルを定義します。

mysql> create table DemoTable1878
    (
    FirstName varchar(20)
    );
Query OK, 0 rows affected (0.00 sec)

レコードの挿入

次に、INSERTコマンドを使ってテーブルにデータを挿入します。意図的にNULL値を含むレコードも登録している点に注目してください。

mysql> insert into DemoTable1878 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1878 values(NULL);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1878 values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1878 values(NULL);
Query OK, 1 row affected (0.00 sec)

現在のデータを確認する

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select * from DemoTable1878;

実行結果は以下の通りです。FirstName列にNULL値が2件含まれていることが確認できます。

+-----------+
| FirstName |
+-----------+
| Chris     |
| NULL      |
| David     |
| NULL      |
+-----------+
4 rows in set (0.00 sec)

IFNULL()関数でNULL値を置き換える

IFNULL()関数は、第1引数の値がNULLでない場合はそのまま第1引数を返し、NULLである場合には第2引数で指定した値を返す関数です。以下のクエリでは、FirstName列がNULLのレコードに対して、「Robert」という文字列を代わりに表示させています。

mysql> select ifnull(FirstName,'Robert') from DemoTable1878;

実行結果を見ると、NULLだった部分がすべて「Robert」に置き換わっていることがわかります。

+----------------------------+
| ifnull(FirstName,'Robert') |
+----------------------------+
| Chris                      |
| Robert                     |
| David                      |
| Robert                     |
+----------------------------+
4 rows in set (0.00 sec)

まとめ

IFNULL()関数を使えば、SELECT文の結果に含まれるNULL値を簡単に別の値へ変換できます。データの表示を整えたい場合や、NULLをデフォルト値として扱いたい場合などに非常に便利です。なお、取得時だけでなく実際にテーブル内のNULL値を更新したい場合は、UPDATE文とWHERE句(例:WHERE FirstName IS NULL)を組み合わせることで対応できます。

  1. MySQLで最初の3件のレコードに特定の値を設定する方法

    MySQLで、テーブルの最初の3件のレコードだけに特定の値を設定したい場合は、UPDATE文と組み合わせて LIMIT 3 を使用します。MySQLのUPDATE文は ORDER BY 句と LIMIT 句をサポートしているため、更新対象の行数を簡単に制御できます。ここでは、実際の手順をサンプルコードとともに解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable1968     (     Id int NOT NULL AUTO_I

  2. MySQLで列にENUM型を設定する方法

    ```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20