MySQLは空の文字列を自動的にNULLに変換できますか?
MySQLのNULLIF()関数を使用する必要があります。構文は次のとおりです。
SELECT NULLIF(yourCoumnName,’ ’) as anyVariableName from yourTableName;
上記の構文で、空の文字列(‘‘)を空の文字列(‘‘)と比較すると、結果は常にNULLになります。ただし、NULLと空の文字列(‘‘)を比較すると、結果も常にNULLになります。
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table ConvertEmptyStringToNULL -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.63 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into ConvertEmptyStringToNULL(Name) values('John'); Query OK, 1 row affected (0.22 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(''); Query OK, 1 row affected (0.15 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(NULL); Query OK, 1 row affected (0.14 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(''); Query OK, 1 row affected (0.21 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values('Carol'); Query OK, 1 row affected (0.13 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(NULL); Query OK, 1 row affected (0.70 sec)>
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。
mysql> select *from ConvertEmptyStringToNULL;
出力は次のとおりです。
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | | | 3 | NULL | | 4 | | | 5 | Carol | | 6 | NULL | +----+-------+ 6 rows in set (0.00 sec)
空の文字列をNULLに変換するクエリは次のとおりです。
mysql> select NULLIF(Name,'') as EmptyStringNULL from ConvertEmptyStringToNULL;
以下は、空の文字列の代わりにNULLを表示する出力です。
+------------------+ | EmptyStringNULL | +------------------+ | John | | NULL | | NULL | | NULL | | Carol | | NULL | +------------------+ 6 rows in set (0.00 sec)
-
MySQLで空の文字列をNULLに更新するにはどうすればよいですか?
これには、LENGTH()を使用します。これは、長さが0の場合、文字列が空であることを意味するためです。検出後、UPDATEコマンドのSET句を使用してNULLに設定できます。まずテーブルを作成しましょう- mysql> create table DemoTable ( Name varchar(50) ); Query OK, 0 rows affected (0.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris');
-
空の値をNULLに変換するMySQLクエリ?
SETとWHEREを使用して、空の値をNULLに変換するのは簡単です。まずテーブルを作成しましょう- mysql> create table DemoTable1315 -> ( -> CountryName varchar(10) -> ); Query OK, 0 rows affected (0.60 sec) 挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。ここでもいくつかの空の値を設定しました- mysql> insert into DemoTable1315 values('US'); Query OK, 1 row