我写了一个小函数:
CREATE TABLE states
(`id` int, `name` varchar(2))
;
INSERT INTO states
(`id`, `name`)
VALUES
(1, 'md'),
(2, 'tx'),
(3, 'ma')
;
delimiter //
create function states_repeated (s varchar(2))
returns int
begin
insert into sid select count(*) from states where states.name=s ;
return sid ;
end//
delimiter ;
select states_repated('ma') ;
但是这会返回
ERROR 1146 (42S02): Table 'test.sid' doesn't exist
如何返回此值?
答案 0 :(得分:2)
尝试这样的事情,
DECLARE _returnValue INT;
SET _returnValue = (select count(*) from states where states.state = s);
return _returnValue;
完整代码
delimiter //
create function states_repeated (s varchar(2))
returns int
begin
DECLARE _returnValue INT;
SET _returnValue = (select count(*) from states where states.name = s);
return _returnValue;
end//
delimiter ;
答案 1 :(得分:0)
我认为mysql函数和存储过程只返回声明的变量