MySQLでNULL値を比較して新しい列に「1」を表示する方法
MySQLでNULL値を比較して新しい列に「1」を表示する方法
MySQLである列の値がNULLかどうかを判定し、NULLの場合に新しい列へ「1」を表示したい場面はよくあります。このようなときは、IF()関数とIS NULLを組み合わせることで簡単に実現できます。
この記事では、実際にテーブルを作成し、NULL値を含むデータを挿入したうえで、NULL判定の結果を新しい列に表示するまでの手順を順番に解説します。
1. テーブルを作成する
まずはサンプル用のテーブルを作成しましょう。「Name」(名前)と「CountryName」(国名)の2つの列を持つシンプルな構造です。
mysql> create table DemoTable ( Name varchar(100), CountryName varchar(100) ); Query OK, 0 rows affected (0.70 sec)
2. レコードを挿入する
INSERT文を使ってテーブルにデータを追加します。
mysql> insert into DemoTable values('Chris','US');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Mike',NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable values('Bob','AUS');
Query OK, 1 row affected (0.45 sec)
ここでは、「Mike」に明示的にNULLを挿入したほか、「David」はCountryNameを指定せずに登録したため、この2件がNULL値を持つことになります。
3. テーブルの内容を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は次のとおりです。
+-------+-------------+ | Name | CountryName | +-------+-------------+ | Chris | US | | Mike | NULL | | David | NULL | | Bob | AUS | +-------+-------------+ 4 rows in set (0.00 sec)
4. NULL値を判定して新しい列に「1」を表示するクエリ
以下が、NULL値を比較し、該当する行の新しい列に「1」を表示するためのクエリです。IF()関数の第1引数に「CountryName IS NULL」という条件を指定し、NULLであれば1、そうでなければ0を返すようにしています。
mysql> select Name,CountryName,If (CountryName IS NULL,1,0) AS CountDemo from DemoTable;
実行結果は次のとおりです。
+-------+-------------+-----------+ | Name | CountryName | CountDemo | +-------+-------------+-----------+ | Chris | US | 0 | | Mike | NULL | 1 | | David | NULL | 1 | | Bob | AUS | 0 | +-------+-------------+-----------+ 4 rows in set (0.00 sec)
結果を見ると、CountryNameがNULLの「Mike」と「David」の行では、新しく追加されたCountDemo列に「1」が表示され、それ以外の行には「0」が表示されていることがわかります。
まとめ
IF()関数とIS NULLを組み合わせれば、NULL値の有無を数値(1または0)として新しい列に簡単に出力できます。NULLの行だけをカウントしたり抽出したりする場合にも応用できる便利なテクニックなので、ぜひ覚えておきましょう。
-
【MySQL入門】NULL値に応じて新しい列にカスタムテキストを表示する方法
MySQLでは、IF()関数を活用することで、カラムの値がNULLかどうかを判定し、その結果に応じて新しい列に任意のカスタムテキストを表示できます。本記事では、実際のサンプルコードとともにその手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、学生名を格納するシンプルなテーブルを作成しましょう。mysql> create table DemoTable1953 ( StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. テストデータを挿入する次に、INSERT文を使ってレコ
-
MySQLでNULL値を1として表示・更新する方法
MySQLでは、テーブル内のNULL値を別の値(たとえば「1」)に置き換えて扱いたい場面があります。この記事では、IFNULL関数とUPDATE文を組み合わせて、NULL値を1に変換する具体的な手順をサンプルコード付きで解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1963 ( Counter int ); Query OK, 0 rows affected (0.00 sec) 2. レコードを挿入する INSERT文を使って、NULLを含む複数のレコードを