'SQL: return the select value in the stored procedure

I have stored procedure with 3 statements to update sta_fk_col_id in the status table. For test porpuses, I want to return the value in sta_fk_col_id without updating the table. Instead of UPDATE status SET sta_fk_col_id = I tried to do something like SET valido = but without seccuss.

SET valido

CREATE DEFINER=`tpcroot`@`%` PROCEDURE `sp_test_store_procedure`(IN functionId INT, out valido int)
BEGIN
-- statement 1.1
SET valido = 
(SELECT CASE WHEN MAX(mon_alertlevel) >= 60 THEN 3 WHEN MAX(mon_alertlevel) < 60
AND MAX(mon_alertlevel) >= 30 THEN 2 ELSE 1 END AS color
FROM monitor INNER JOIN monitor_system ON fk_mon_id = mon_funct_id
WHERE fk_dri_id IN (110))
WHERE sta_fk_dri_id = (110);

-- statement 1.2
SET valido = 
(SELECT  color FROM ( SELECT MAX(sta_fk_col_id) AS color FROM status WHERE sta_fk_mty_id = 1
 AND sta_fk_sys_id = 4 
 AND sta_fk_dri_id IS NOT NULL) helptable) 
WHERE sta_fk_sys_id = 4 AND 
sta_fk_mty_id = 1 AND sta_fk_dri_id IS NULL;


-- statement 2
SET valido = (SELECT CASE WHEN MAX(mon_alertlevel) >= 60 THEN 3 WHEN MAX(mon_alertlevel) <60 AND MAX(mon_alertlevel) >= 30 THEN 2 ELSE 1 END AS color 
FROM monitor_system INNER JOIN monitor ON fk_mon_id = mon_funct_id  AND mon_funct_id = functionId) 
WHERE sta_fk_mty_id = 1 AND 
sta_fk_sys_id = 4 AND 
sta_fk_dri_id IS NULL AND 
(SELECT countDrilldown FROM (select Count(*) AS countDrilldown FROM status 
WHERE sta_fk_mty_id = 1 AND 
sta_fk_sys_id = 4 AND sta_fk_dri_id IS NOT NULL) helptable) = 0;

select @valido; 
END

I am calling the stored procedure like this:

CALL sp_test_store_procedure(2315, @returnValue);
select @returnValue;


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source