在本教程中,您将了解如何将NULL值映射到其他有意义的值。
在关系数据库理论中NULL的概念,它表示未知值或缺少信息。
MySQL也支持NULL概念,表示丢失或不适用信息。
在数据库表中,存储包含NULL值的数据。 当以报告的形式向用户显示数据时,显示NULL值没有什么特别意义。
为了使报告更易于阅读和理解,所以必须将NULL值显示为其他值,例如未知,缺失或不可用 (N/A)。 为此我们可以使用IF函数。
IF函数的语法如下:
IF(exp,exp_result1,exp_result2);
如果exp计算结果为TRUE(当exp <> 0和exp <> NULL时),IF函数返回exp_result1的值,否则返回exp_result2的值。
IF函数的返回值可以是字符串或数字,具体取决于exp_result1和exp_result2表达式。
让我们通过一些例子练习来更好的理解和使用它们。我们将使用示例数据库中的customer表。
以下是customer表中包括客户名称,所在省份和城市的部分数据:
SELECT
customer_name, province, city
FROM
studymysql.customer
ORDER BY province;
执行上面的查询语句,结果如下所示 -

除了IF函数,MySQL提供了ISNULL函数,允许直接处理NULL值。 以下是ISNULL函数的语法:
IFNULL(exp,exp_result);
如果exp计算为NULL值,ISNULL函数返回exp_result表达式的值,否则返回exp表达式的值。
以下查询使用ISNULL函数将NULL显示为未知(N/A),如下所示:
SELECT customer_name,
IFNULL(province,"N/A") province,
city
FROM studymysql.customer
ORDER BY province;
执行上面的查询语句,结果如下所示 -

在本教程中,您已经学习了如何使用IF和ISNULL函数将NULL值映射到其他更有意义的值,以便使用一种可读的方式来呈现数据。