1概述
Mysql中的流程控制函数非常重要,可以根据不同的条件,执行不同的流程转换,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。
1.1 IF函数
SELECT IF(1 > 0, '正确', '错误');
1.2 IFNULL函数
SELECT IFNULL(null,'Hello Word');
SELECT IFNULL('非空','Hello Word');
1.3 CASE WHEN
1)在 SELECT 语句中使用 CASE WHEN:
SELECT column1,column2,CASE WHEN column3 > 10 THEN 'Greater than 10'WHEN column3 = 10 THEN 'Equal to 10'ELSE 'Less than 10'END AS result
FROM your_table;
2)在 WHERE 子句中使用 CASE WHEN:
SELECT *
FROM your_table
WHERE CASE WHEN column4 = 'active' THEN 1WHEN column4 = 'inactive' THEN 0ELSE NULLEND = 1;
3)在 ORDER BY 子句中使用 CASE WHEN:
SELECT *
FROM your_table
ORDER BYCASE WHEN column5 = 'High' THEN 1WHEN column5 = 'Medium' THEN 2WHEN column5 = 'Low' THEN 3ELSE 4END;
总体而言,CASE WHEN 语句非常灵活,可以根据需要进行多层嵌套,用于处理复杂的条件逻辑。
1.4 CASE 表达式 WHEN
SELECT oid,`status`, CASE `status` WHEN 1 THEN '未付款'WHEN 2 THEN '已付款'WHEN 3 THEN '已发货'WHEN 4 THEN '确认收货'ELSE '无效订单' END
FROM t_order;