Mysql在case语句中使用变量

时间:2018-01-23 15:55:51

标签: mysql case

尝试做一些非常简单的事情。 想运行一个SP,检查其中一个参数是否为空。如果是这样,请在日志表中存储空字符串,否则存储该值。

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_TestVariable`(
Code1 varchar(255) ,
CodeToTest varchar(255)
)
BEGIN

CASE 
WHEN   CodeToTest IS NULL  THEN
 set @FinalCode = ' '

ELSE  
 set @FinalCode = CodeToTest 

end
-- Now do the insert into the log table
INSERT INTO `TempLogTable` ( strField1, strField2)
VALUES (Code1 , @FinalCode );

1 个答案:

答案 0 :(得分:0)

您可以将所有内容减少为simle查询

INSERT INTO `TempLogTable` (strField1, strField2)
SELECT Code1, coalesce(CodeToTest, '')

为此,我甚至会删除该过程,而只是使用查询。