我正在编写一个存储过程,我从一个表中获取数据,并根据我希望在其他操作中使用该数据的数据。 E.g。
select id,name,email,mobile,user_type from users
基于user_type,我想使用id字段进行进一步处理。例如,
if(user_type=1)
begin
select * from some_table where Userid = id
End
Else if (user_type=2)
begin
select * from some_other_table where Userid = id
End
任何人都可以为我提供基本语法吗
答案 0 :(得分:0)
您可以在过程中declare
个变量,然后使用SELECT ... INTO ... FROM
语句填充它们。然后,这些变量可以在IF THEN ELSE
表达式中使用。
DELIMITER $$
CREATE PROCEDURE test()
BEGIN
DECLARE temp_id, temp_user_type INT;
DECLARE temp_name, temp_email, temp_mobile VARCHAR(100);
SELECT id,name,email,mobile,user_type
INTO temp_id, temp_name, temp_email, temp_mobile, temp_user_type FROM users WHERE id = 1;
IF temp_user_type = 1 THEN
SELECT * FROM some_table WHERE Userid = temp_id
ELSEIF temp_user_type = 2 THEN
SELECT * FROM some_other_table WHERE Userid = temp_id
ELSE
--
END IF;
END$$