嘿伙计们,当我在mysql中使用带有一个案例的变量时,我遇到了一个问题。
我使用的代码是
DECLARE vSite VARCHAR(20);
SET vSite = case
when id > 0 then 'sdfsdf'
else 'asd' end as name
from customers;
当我运行此代码时,它会抛出像
这样的错误You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE vSite VARCHAR(20)' at line 1: DECLARE vSite VARCHAR(20)
任何人都可以指出我哪里出错了。谢谢你的宝贵帮助
答案 0 :(得分:1)
您需要在BEGIN END块中声明变量。
以下是存储过程的简单示例
DELIMITER //
CREATE procedure blah(IN customer_id INT,OUT vSite VARCHAR(20))
BEGIN
SELECT CASE WHEN id > 0 THEN 'blah'
ELSE 'mah' END INTO vSite FROM customers WHERE id=customer_id;
END//
DELIMITER ;
CALL blah(3,@somevar);
SELECT @somevar;