2011-03-29 22 views
0

我有一個名稱爲(names)的表。我有另一個持有ID(user)。 我有一個條件構造 - case-when語句,如果名稱表中的名稱與特定條件匹配,則應該將id插入到用戶表中。在兩個不同的表中使用mysql樣例語句中的樣式

我已經使用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。

有沒有辦法以不同的方式做到這一點?

回答

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 $$ 
相關問題