MySQL 如何检查列值是否为NULL或具有默认值
您可以使用IFNULL()的概念实现此目的。让我们先创建一个表 –
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name varchar(100) DEFAULT 'Larry',
Age int DEFAULT NULL
);
Query OK, 0 rows affected (0.73 sec)
使用insert命令将记录插入表中 –
mysql> insert into DemoTable(Name,Age) values('John',23);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values();
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(Age) values(24);
Query OK, 1 row affected (0.13 sec)
以下是使用select语句从表中显示所有记录的查询 –
mysql> select *from DemoTable;
这将生成以下输出 –
+----+-------+------+
| Id | Name | Age |
+----+-------+------+
| 1 | John | 23 |
| 2 | Larry | NULL |
| 3 | David | NULL |
| 4 | Larry | 24 |
+----+-------+------+
4 rows in set (0.00 sec)
以下是在MySQL中检查列值是否为NULL或具有默认值的查询。
mysql> select * from DemoTable WHERE IFNULL(Name, DEFAULT(Name)) <> DEFAULT(Name);
这将生成以下输出 –
+----+-------+------+
| Id | Name | Age |
+----+-------+------+
| 1 | John | 23 |
| 3 | David | NULL |
+----+-------+------+
2 rows in set (0.00 sec)
阅读更多:MySQL 教程