2014-03-28 33 views
1

Im新的mysql存儲過程。在這裏,我有一個表tbl_users具有以下字段Mysql SP與自定義參數

id 
first_name 
last_name 
status 

我已經寫了下面的SP更新此表。

CREATE PROCEDURE `user_update`(IN var_id INT, IN var_first_name TEXT, IN var_last_name TEXT, IN var_status INT) 
BEGIN  
    UPDATE tbl_users SET first_name = var_first_name, last_name = var_last_name, status = var_status WHERE id = var_id; 
END 

上述過程將正常工作。這個問題,我想用相同的程序來更新狀態字段。在這種情況下,我必須通過現有值的所有參數。有沒有解決方案,如果可能的話,我可以在多個領域重複使用SP ...請幫助。

回答

1
Mr. EKL please try this code, 
You have to include a new parameter "Update_Field" and try the below code 

CREATE PROCEDURE `user_update`(
IN var_id INT, 
IN var_first_name TEXT, 
IN var_last_name TEXT, 
IN var_status INT, 
IN Update_field TEXT 
) 
BEGIN  
UPDATE tbl_users SET first_name = var_first_name, last_name = var_last_name, [status] = var_status WHERE id = var_id AND Update_field = 'ALL'; 
UPDATE tbl_users SET [status] = var_status WHERE id = var_id AND Update_field = 'status'; 
END 
+0

它是一個很好的解決方案,是否可以將參數作爲數組傳遞? – EKL