如果MYSQL存储过程

时间:2015-10-28 04:07:17

标签: mysql stored-procedures

CREATE PROCEDURE `new_procedure`()
BEGIN

    INSERT IGNORE INTO users ( group_id, username, password, email) 
    SELECT status, CONCAT(first_name, last_name), password, email FROM another_user;

END

以下是我想直接将另一个用户的状态写入用户的group_id的示例。

有没有像Java一样的方法,如果还有简写语法?如果声明可以这样:

SELECT (status==1?4,5), CONCAT(first_name, last_name), password, email FROM another_user;

1 个答案:

答案 0 :(得分:2)

这是IF函数:

SELECT IF(status = 1, 4, 5), CONCAT(first_name, last_name), password, email
FROM another_user;

您还可以使用标准SQL CASE表达式:

SELECT CASE status
        WHEN 1 THEN 4
        ELSE 5
       END,
        CONCAT(first_name, last_name), password, email
FROM another_user;

这不是特定于存储过程,它只是SQL表达式的一般特性,您可以在任何地方使用它。