如果 MySQL 列欄位為空,是否將該欄位視為 NULL?


我們首先建立一個表格 -

mysql> create table DemoTable1362
    -> (
    -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ClientName varchar(40)
    -> );
Query OK, 0 rows affected (0.67 sec)

使用插入命令在表格中插入一些記錄 -

mysql> insert into DemoTable1362(ClientName) values('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1362(ClientName) values(' ');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable1362(ClientName) values('Bob');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1362(ClientName) values(' ');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1362(ClientName) values('David');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1362(ClientName) values(NULL);
Query OK, 1 row affected (0.07 sec)

使用 select 語句從表格中顯示所有記錄 -

mysql> select * from DemoTable1362;

這將生成以下輸出 -

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|        1 | Chris      |
|        2 |            |
|        3 | Bob        |
|        4 |            |
|        5 | David      |
|        6 | NULL       |
+----------+------------+
6 rows in set (0.00 sec)

以下是將列欄位視為 null 的查詢(如果該欄位為空)-

mysql> update DemoTable1362
    -> set ClientName=NULL
    -> where ClientName='' or length(ClientName)=0;
Query OK, 2 rows affected (0.21 sec)
Rows matched: 2  Changed: 2 Warnings: 0

讓我們再次檢查表格記錄 -

mysql> select * from DemoTable1362;

這將生成以下輸出 -

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|        1 | Chris      |
|        2 | NULL       |
|        3 | Bob        |
|        4 | NULL       |
|        5 | David      |
|        6 | NULL       |
+----------+------------+
6 rows in set (0.00 sec)

更新於:2019 年 11 月 8 日

171 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

入門
廣告
© . All rights reserved.