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