奇怪的返回值:mySQL

时间:2016-03-14 03:30:46

标签: mysql sql

我正在尝试查找用户是否已使用mySql查询分配了共享。我在函数中有这些查询,并且它始终返回“否”。但是,如果我在mySql命令提示符下运行以下查询,则会收到“是”。我一直在打破这个......虽然非常愚蠢但是无法破解它。任何帮助,将不胜感激。 THX!

//This returns 0 because the employee has been allotted shared now
//THIS IS THE MOST RECENT RECORD
SELECT ISNULL(NewEquityShares) INTO @PRESENT FROM System_Users_Share_Allotment_Info WHERE UserID = 'xyz' AND MostRecentRecord = 'Yes';

//This returns 1 because the employee was not allotted shared before
//THIS IS ONE RECORD BEFORE THE MOST RECENT RECORD
SELECT ISNULL(NewEquityShares) INTO @PREVIOUSLY FROM System_Users_Share_Allotment_Info WHERE UserID = 'xyz' AND MostRecentRecord = 'No';

//
SELECT IF ( @PRESENT = 0 AND @PREVIOUSLY = 1,'Yes','No');

mySQL功能:

DELIMITER $$
CREATE FUNCTION `fn_isNewSharesAlloted`(UserID VARCHAR(36)) RETURNS VARCHAR(3) CHARSET utf8
BEGIN

DECLARE strResponse VARCHAR(3) DEFAULT NULL;
DECLARE strUserID VARCHAR(36) DEFAULT NULL;

SET strUserID = UserID;

    -- This returns 0 because the employee has been  allotted shared now
SELECT ISNULL(NewEquityShares) INTO @PRESENT FROM System_Users_Share_Allotment_Info WHERE UserID = strUserID AND MostRecentRecord = 'Yes';

    -- This returns 1 because the employee was not allotted shared before
SELECT ISNULL(NewEquityShares) INTO @PREVIOUSLY FROM System_Users_Share_Allotment_Info WHERE UserID = strUserID AND MostRecentRecord = 'No';

SELECT IF ( @PRESENT = 0 AND @PREVIOUSLY = 1,'Yes','No') INTO strResponse;

RETURN strResponse;

END$$
DELIMITER ;

0 个答案:

没有答案