SELECTステートメントを使用してMySQLでnull値を置き換える方法の違いは何ですか?
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)
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)
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)
ケース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)
-
同じMySQLSELECTステートメント内でエイリアスの値を使用する
SELECTでエイリアスを直接使用することはできません。代わりに、ユーザー定義変数を使用してください。構文は次のとおりです。ここで、@yourAliasNameは変数とエイリアスです- select @yourAliasName :=curdate() as anyAliasName,concat(‘yourValue.',yourColumnName,' yourValue',@yourAliasName) as anyAliasName from yourTableName; まずテーブルを作成しましょう- mysql> create table
-
MySQLでは、!=NULLとISNOT NULLの違いは何ですか?
値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970 ( Value int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa