2013-04-23 7 views
6

मैं परिणाम सेट वापस करने की कोशिश नहीं कर रहा हूं और मुझे नहीं पता कि मैं यहां क्या कर रहा हूं। MySQL 5,5MySQL फ़ंक्शन - त्रुटि कोड: 1415 फ़ंक्शन से परिणाम सेट को वापस करने की अनुमति नहीं है

delimiter $$ 

CREATE FUNCTION CheckAccount(
    i_username varchar(50) 
) RETURNS integer 

BEGIN 

    DECLARE v_validUserId int; 
    DECLARE v_validMembership int; 
    DECLARE o_Status integer; 

    SELECT vvalidUserId = u.UserId 
    FROM Users u 
    WHERE u.Username = i_username; 

    IF(v_validUserId IS NULL) THEN 
     SET o_Status = 2; -- Invalid username 
    ELSE 
     SET o_Status = 1; -- Good 
    END IF; 


    IF(o_Status != 2) THEN 
      SELECT v_validMembership = 1 
      FROM Users u 
      JOIN UserMemberships um on um.UserId = u.userId 
      JOIN Memberships m on m.MembershipId = um.MembershipId 
      WHERE um.MembershipExpireDateTime > CURDATE() 
      AND u.UserId = v_validUserId; 

      IF(v_validMembership IS NULL) THEN 
       SET o_Status = 3; -- Invalid membership 
      END IF; 
    END IF; 

    RETURN o_status; 

END $$ 
DELIMITER ; 

किसी भी मदद की बहुत सराहना की जाएगी!

उत्तर

8

मुझे यकीन नहीं है कि आप इस तरह के चर निर्दिष्ट कर सकते हैं, अपने चयन के लिए INTO कथन का उपयोग करने का प्रयास करें। उदाहरण के लिए:

SELECT 
    u.UserId INTO vvalidUserId 
FROM 
    Users u 
WHERE 
    u.Username = i_username; 
+0

आप एक GENIUS हैं !!! आपको बहुत - बहुत धन्यवाद! यह दिखा रहा था कि एक त्रुटि के रूप में मैं कभी अपने आप को कभी नहीं मिला होगा। – sqltracy

संबंधित मुद्दे