MySQL中,可以使用IFCASE语句来执行条件逻辑。以下是它们的使用方法:

IF函数

IF函数是三元条件函数,如果条件为真,则返回第一个值,否则返回第二个值。

SELECT IF(condition, value_if_true, value_if_false) FROM table_name;

例如,假设你有一个名为students的表,其中有一个marks列,你想查看每个学生是否及格(假设及格分数是40):

SELECT name, IF(marks >= 40, 'Passed', 'Failed') AS result FROM students;

CASE语句

CASE可以处理更复杂的条件和多个分支。

SELECT 
    CASE 
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE result_else
    END
FROM table_name;

举一个例子,假设你想根据学生的分数给他们分类:

SELECT 
    name,
    CASE 
        WHEN marks >= 90 THEN 'A'
        WHEN marks >= 80 THEN 'B'
        WHEN marks >= 70 THEN 'C'
        WHEN marks >= 60 THEN 'D'
        ELSE 'F'
    END AS grade
FROM students;

更多case when用法可以参看《MYSQL CASE WHEN 用法

IF-ELSE结构在存储过程

如果你在MySQL存储过程或函数中,可以使用更传统的IF-ELSE结构。以下是一个简单示例:

DELIMITER //

CREATE PROCEDURE GetGrade(IN studentMarks INT, OUT grade CHAR(1))
BEGIN
    IF studentMarks >= 90 THEN
        SET grade = 'A';
    ELSEIF studentMarks >= 80 THEN
        SET grade = 'B';
    ELSEIF studentMarks >= 70 THEN
        SET grade = 'C';
    ELSEIF studentMarks >= 60 THEN
        SET grade = 'D';
    ELSE
        SET grade = 'F';
    END IF;
END //

DELIMITER ;

选择哪种方法取决于具体需求和场景。