MySQL条件判断IF,CASE,IFNULL语句详解

MySQL条件判断IF,CASE,IFNULL语句详解

1.IF语句的基本用法
IF(condition, true_statement, false_statement);
condition: 条件表达式,可以是任何返回布尔值的表达式。
true_statement: 如果条件为真,则执行的语句。
false_statement: 如果条件为假,则执行的语句。

demo
SELECT id, name, score, IF(score >= 90, 'A', IF(score >= 80, 'B', 'C')) AS grade FROM students;

#统计修改次数,大于1次标识“修改多”,否则标识“修改少”
IF(COUNT(1) > 1,'修改多','修改少') AS '修改频率',

2.CASE语句
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END;
expression: 表达式,用于进行比较的值。
WHEN value THEN result: 当expression等于value时,返回result。
ELSE result: 如果没有匹配的条件,则返回result。

demo
SELECT id, name, price,
    CASE
        WHEN price > 1000 THEN '高价'
        WHEN price > 500 THEN '中价'
        ELSE '低价'
    END AS price_range
FROM products;

CASE category    
WHEN 1 THEN '订单类型1'
WHEN 2 THEN '订单类型2'
WHEN 3 THEN '订单类型3'
WHEN 4 THEN '订单类型4'
ELSE '未知'
END '订单类型',

CASE     
WHEN category = 1 THEN '订单类型1'
WHEN category = 2 THEN '订单类型2'
WHEN category = 3 THEN '订单类型3'
WHEN category = 4 THEN '订单类型4'
ELSE '未知'
END '订单类型',

3.IFNULL函数
IFNULL(expression, value);
expression: 表达式,用于判断是否为NULL。
value: 如果expression为NULL,则返回的值。

demo:
SELECT IFNULL(NULL,'判断空'); #输出: 判断空
SELECT IFNULL('非NULL','判断空'); #输出: 非NULL

 

posted on 2024-05-22 06:28  oktokeep  阅读(13)  评论(0编辑  收藏  举报