📅  最后修改于: 2023-12-03 15:17:45.821000             🧑  作者: Mango
当我们在 MySQL 中需要使用逻辑判断时,通常会使用 IF-ELSE 语句。但是如果没有 ELSE 分支,我们该怎么办呢?
在 MySQL 中,可以使用 IFNULL 和 NULLIF 函数来实现 IF 没有 else 的逻辑判断。
IFNULL 函数的作用是,如果第一个参数为 NULL,则返回第二个参数;否则返回第一个参数。我们可以利用这个特性来实现 IF 没有 else 的逻辑判断。
语法如下:
IFNULL(expr1,expr2)
示例:
SELECT IFNULL(NULL, 'a'), IFNULL('b', 'c');
结果:
| IFNULL(NULL, 'a') | IFNULL('b', 'c') |
| ----------------- | ---------------- |
| a | b |
在上面的示例中,第一个参数为 NULL,返回了第二个参数 'a';第二个参数不为 NULL,返回了第一个参数 'b'。
我们可以将 IFNULL 函数嵌套在 SELECT 语句中,来实现 IF 没有 else 的逻辑判断。
示例:
SELECT column1, IFNULL(column2, 'default')
FROM table1;
在上面的示例中,如果 column2 为 NULL,则返回 'default';否则返回 column2 的值。
NULLIF 函数的作用是,如果第一个参数等于第二个参数,则返回 NULL;否则返回第一个参数。我们可以利用这个特性来实现 IF 没有 else 的逻辑判断。
语法如下:
NULLIF(expr1,expr2)
示例:
SELECT NULLIF('a', 'b'), NULLIF('a', 'a');
结果:
| NULLIF('a', 'b') | NULLIF('a', 'a') |
| ---------------- | ---------------- |
| a | NULL |
在上面的示例中,第一个参数不等于第二个参数,返回了第一个参数 'a';第一个参数等于第二个参数,返回了 NULL。
我们可以将 NULLIF 函数嵌套在 SELECT 语句中,来实现 IF 没有 else 的逻辑判断。
示例:
SELECT column1, NULLIF(column2, 'not found')
FROM table1;
在上面的示例中,如果 column2 等于 'not found',则返回 NULL;否则返回 column2 的值。