我有一个名字(names
)的表格。我有另一个持有ID(user
)。
我有一个条件构造 - 一个case-when语句,如果names表中的名称与某个条件匹配,则应该在用户表中插入一个id。
我使用like %
来匹配字符串模式:
delimiter //
create procedure name_matching (in names.name varchar, out id int)
begin
case
when names.name like 's%_%a' then
insert into user (id) values ('1');
else
insert into user (id) values ('2');
end case
end//
这会在mysql终端输出错误1064。
有没有办法以不同的方式做到这一点?
答案 0 :(得分:1)
您的手术有一些小问题。在end case
之后你需要一个分号,你需要在输入参数列表中为varchar
指定一个字段大小,等等。以下对MySQL 5.1有用(“工作”含义:不创建过程时产生错误):
delimiter $$
create procedure name_matching (in name varchar(500))
begin
case
when name like 's%_%a' then
insert into user (id) values (1);
else
insert into user (id) values (2);
end case;
end $$