2014-03-26 25 views
0

創建功能錯誤,當我嘗試創建一個功能使用電子郵件它給了我這個沒用的錯誤來檢索用戶表用戶名:在phpMyAdmin

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE name VARCHAR; BEGIN select userName AS name from user WHERE `ema' at line 2

,用不同的語法相同的代碼在MSSQL工作這麼我不知道有什麼區別?用更好的話來說,我在這裏做錯了什麼?

DELIMITER ;; 
CREATE FUNCTION getUserName(email varchar(50)) RETURNS VARCHAR 
BEGIN 
    DECLARE name VARCHAR; 
    SELECT `userName` AS name FROM `user` WHERE `email` = email; 
    RETURN name; 
END ;; 

回答

0

嗯,首先,varchar需要有長度,這是你在兩個地方缺乏的。另外,你需要選擇變量並返回變量,因爲你不能返回結果集。你也應該逃避名字,你不需要別名,因爲你選擇了。所以,你的代碼應該是這樣的:

DELIMITER ;; 
CREATE FUNCTION getUserName(email VARCHAR(50)) RETURNS VARCHAR(50) 
BEGIN 
    DECLARE NAME VARCHAR(50); 
    SELECT `userName` FROM `user` WHERE `email` = email 
    INTO `name`; 
    RETURN `name`; 
END ;; 
+0

它工作的一種享受謝謝,我喜歡你的意見現在我知道爲什麼它沒有工作之前 – user3466364