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)
使用 insert 命令將一些記錄插入到表中。查詢如下
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)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP