ホームページ > データベース > mysql チュートリアル > MySQL で SELECT ステートメントを使用して null 値を置き換えるさまざまな方法には何がありますか?

MySQL で SELECT ステートメントを使用して null 値を置き換えるさまざまな方法には何がありますか?

王林
リリース: 2023-09-07 11:13:10
転載
960 人が閲覧しました

在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?

select ステートメントを使用して NULL 値を置き換えるオプションは多数あります。 CASE ステートメント、IFNULL() または COALESCE()

ケース 1 - IFNULL() を使用します

IFNULL() の構文は次のとおりです-

SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
ログイン後にコピー

ケース 2 - COALESCE() を使用します

COALESCE() の構文は次のとおりです -

SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
ログイン後にコピー

ケース 3 - CASE ステートメントを使用する

CASE ステートメントの構文。

SELECT CASE
WHEN yourColumnName IS NULL THEN ‘yourValue’
ELSE yourColumnName END AS anyVariableName FROM yourTableName
ログイン後にコピー

上で説明した内容を理解するために、表を作成してみましょう。テーブルを作成するクエリは次のとおりです。 -

mysql> create table ReplaceNULLDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(10),
   -> Marks int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.62 sec)
ログイン後にコピー

insert コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。 -

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Larry',90);
Query OK, 1 row affected (0.16 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Carol',NULL);
Query OK, 1 row affected (0.17 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('David',NULL);
Query OK, 1 row affected (0.14 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Bob',67);
Query OK, 1 row affected (0.17 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Sam',78);
Query OK, 1 row affected (0.19 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Mike',NULL);
Query OK, 1 row affected (0.19 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('John',98);
Query OK, 1 row affected (0.16 sec)
ログイン後にコピー

select ステートメントを使用して、テーブル内のすべてのレコードを表示します。クエリは次のとおりです -

mysql> select *from ReplaceNULLDemo;
ログイン後にコピー

次は出力です -

+----+-------+-------+
| Id | Name  | Marks |
+----+-------+-------+
|  1 | Larry |    90 |
|  2 | Carol |  NULL |
|  3 | David |  NULL |
|  4 | Bob   |    67 |
|  5 | Sam   |    78 |
|  6 | Mike  |  NULL |
|  7 | John  |    98 |
+----+-------+-------+
7 rows in set (0.00 sec)
ログイン後にコピー

次に、NULL 値を 0 に変換しましょう。

ケース 1 - IFNULL() の使用

クエリは次のとおりです-

mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
ログイン後にコピー

次は、NULL が 0-# に置き換えられたことを示す出力です。 ##

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
|                     90 |
|                      0 |
|                      0 |
|                     67 |
|                     78 |
|                      0 |
|                     98 |
+------------------------+
7 rows in set (0.00 sec)
ログイン後にコピー

ケース 2 - COALESCE() を使用する

クエリは次のとおりです-

mysql> select coalesce(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
ログイン後にコピー

次は、NULL が 0-# に置き換えられたことを示す出力です。 ##
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)
ログイン後にコピー

Case 3

- CASE ステートメントを使用します。 クエリは次のとおりです -

mysql> select case
   -> when Marks is null then 0
   -> else Marks end as ReplacementOfNULLWith0
   -> from ReplaceNULLDemo;
ログイン後にコピー

次は、NULL が 0 に置き換えられたことを示す出力です -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90                     |
| 0                      |
| 0                      |
| 67                     |
| 78                     |
| 0                      |
| 98                     |
+------------------------+
7 rows in set (0.00 sec)
ログイン後にコピー

以上がMySQL で SELECT ステートメントを使用して null 値を置き換えるさまざまな方法には何がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート