2013-02-07 43 views
0

我要進入下面的函數從phpMyAdmin的一個MySQL表計數的一些已完成的任務,但它總是返回一個沒有描述性錯誤MySQL的函數:創建使用phpMyAdmin

DELIMITER $$ 
CREATE FUNCTION `num_completed`(v1 INT) 
RETURNS INT 
BEGIN 
DECLARE icm INT; 
SELECT SUM(IF(completed='yes',1,0)) AS completed INTO icm FROM ri_t_course_progress WHERE enrollment_id=v1; 
RETURN icm; 
END$$ 

查詢本身應該是正確。我測試過它並返回所需的結果。任何人都知道什麼是錯的?

+0

我想這對我的phpmyadmin但我得到這個錯誤#1415 - 不允許從函數返回 – ZenOut

+0

結果集試着將ICM OUT在第一線'創建功能... 。' – jcho360

+0

你會得到什麼錯誤?我將SQL粘貼到'mysql'中,它創建了沒有錯誤的函數。 – Joni

回答

1

您需要將SELECT的結果賦值給變量。這裏有一種方法:

SELECT SUM(IF(completed='yes',1,0)) INTO icm 
FROM ri_t_view_course_progress WHERE enrollment_id=v1; 
+0

你是對的。我完全錯過了。但是......它仍然給沒有描述性錯誤消息,當我將其輸入到mysql的,像這樣: DELIMITER $$ CREATE FUNCTION'num_completed'(V1 INT) 返回int BEGIN DECLARE ICM INT; (IF(completed ='yes',1,0))INTO icm FROM ri_t_course_progress WHERE enrollment_id = v1; RETURN icm; END $$ – Amelia