0

我有一个名称为 ( names) 的表。我有另一个持有 ids ( user)。我有一个条件构造 - 如果名称表中的名称与某个条件匹配,则应该在用户表中插入一个 id 的 case-when 语句。

我曾经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。

有没有办法以不同的方式做到这一点?

4

1 回答 1

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 $$
于 2011-10-20T22:49:05.083 回答