我正在尝试查找用户是否已使用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 ;