MySQL NULLIF()
MySQL NULLIF()
本节将帮助您了解MySQL NULLIF()函数。 NULLIF函数是MySQL控制流函数的一部分,用于两个表达式中的
比较。
NULLIF函数接受两个表达式,如果第一个表达式等于第二个表达式,则返回
NULL 。否则,它将返回第一个表达式。
语法
我们可以使用具有以下语法的NULLIF函数:
NULLif (Expression1, Expression2)
当expression1等于expression2时,它返回Null。否则,它将返回expression1、
参数
参数 |
要求 |
说明 |
Expression1 |
必需 |
它指定要比较的第一个表达式。 |
Expression2 |
必需 |
它指定要比较的第二个表达式。 |
MySQL版本支持
NULLIF函数可以支持以下 MySQL版本:
MySQL 8.0
MySQL 5.7
MySQL 5.6
MySQL 5.5
MySQL 5.1
MySQL 5.0
MySQL 4.1
MySQL 4.0
通过以下示例,让我们了解 MySQL NULLIF()函数。我们可以直接在
SELECT 语句中使用NULLIF函数。
示例1
SELECT nullIF("lidihuo", "lidihuo");
在上面的函数中,MySQL语句检查第一个表达式是否等于第二个表达式。如果两个表达式相同,则返回NULL。否则,它将返回第一个表达式。
输出:
示例2
SELECT nullIF("Hello", "404");
以下MySQL语句比较两个表达式。如果expression1 = expression2,则返回NULL。否则,它将返回expression1、
输出:
示例3
以下MySQL语句比较两个整数值。如果它们相等,则返回NULL。否则,它将返回第一个表达式。
输出:
示例4
在此示例中,我们将了解NULLIF()函数如何防止
除零错误。如果我们运行查询" SELECT 1/0",则会得到一个错误输出。因此,在这种情况下,我们将使用如下语法的NULLIF函数。
输出:
示例5
让我们创建一个用于执行NULLIF功能的
customer 表。以下语句在您的数据库中创建一个客户表。
CREATE TABLE 'customer' (
'customer_id' int UNSIGNED NOT null AUTO_INCREMENT,
'cust_name' VARCHAR(45) NOT null,
'occupation' VARCHAR(45) NOT null,
'income' VARCHAR(15) NOT null,
'qualification' VARCHAR(45) NOT null
);
现在,您需要将数据插入表中。要将值插入表中,请运行以下命令。
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('John Miller', 'Developer', '20000', 'Btech');
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Mark Robert', 'Enginneer', '40000', 'Btech');
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Reyan Watson', 'Scientists', '60000', 'MSc');
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Shane Trump', 'Businessman', '10000', 'MBA');
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Adam Obama', 'Manager', '80000', 'MBA');
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Rincky Ponting', 'Cricketer', '200000', 'Btech');
将值插入表后,执行以下查询。
它将给出下表:
现在,我们将使用NULLIF函数以根据
Btech 检查
资格列值。这意味着如果客户职业是Btech,则返回NULL。否则,它将返回列值。
SELECT cust_name, occupation, qualification,
NULLif (qualification,"Btech") result
FROM myproductdb.customer;
输出:
上述命令成功执行后,将返回以下输出。