1.IF可用于表达式或者流程控制语句
(1)IF()函数
IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
SELECT IF(TRUE,'w','x'); -- 输出结果:w
SELECT IF(FALSE,'w','x'); -- 输出结果:x
(2) IF 表达式
SELECT IF(goods=1,"可乐","鸡翅") AS money FROM food WHERE id = '123456'
(3)表达式的 IF 也可以使用 CASE WHEN
select CASE goods WHEN 1 THEN "可乐" ELSE "鸡翅" END as money from food where id = '123';
2. IFNULL()函数
IFNIULL() 的返回值是数字或是字符串
IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。
SELECT IFNULL(NULL,'x'); -- 输出结果:x
SELECT IFNULL('hi','x'); -- 输出结果:hi
3.NULLIF()函数
NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。
SELECT NULLIF('w','w'); -- 输出结果:null
SELECT NULLIF('w','x'); -- 输出结果:w
4、ISNULL()函数的使用
ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。
SELECT ISNULL(NULL); -- 输出结果:1
SELECT ISNULL('hi'); -- 输出结果:0
5.数据库中的基本语法表示
1.IF(expr1,expr2,expr3)
2. IFNULL(expr1,expr2)
3. IF search_condition THEN
statement_list
ELSE
statement_list
END IF;
4.NULLIF(expr1,expr2)