MySQL 尝试创建检查数据的函数时出现错误代码?

MySQL error code when trying to create a function that checks data?

所以我的数据库中有两个 table 包含会员 ID。我正在尝试创建一个存储函数,当成员不在 table A 中但在 table B 中时 returns 0。

这是我的代码:

Delimiter //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
IF(((SELECT COUNT(*) 
     FROM members 
     WHERE member_id = mid) = 0) AND ((SELECT COUNT(*) 
                                       FROM rent_equipment_log
                                       WHERE member_id = mid) > 0)) THEN
RETURN 0;
ELSE RETURN 1;
END IF;
END;

我得到的错误是 1064,它说我的语法有问题,但我不知道哪里出了问题?提前致谢!

您可以改用 EXISTS()。此外,缺少 END IF 以结束 IF 子句。

DELIMITER //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
  IF( NOT EXISTS(SELECT 1 FROM members 
                 WHERE member_id = mid) 
      AND 
      EXISTS(SELECT 1 FROM rent_equipment_log 
             WHERE member_id = mid) ) THEN 
    RETURN 0;
  ELSE RETURN 1;
  END IF;   -- We need to END the IF clause
END //
DELIMITER ;   -- Redefine the delimiter back to ;