我正在尝试编写一个MySQL函数,它返回用户名是否在我的表中。它是以下内容:
CREATE FUNCTION UserExists (pUserName VARCHAR(40))
RETURNS BIT DETERMINISTIC
BEGIN
DECLARE rVal BIT;
IF EXISTS (SELECT * FROM Users WHERE userName = pUserName)
THEN SET rVal = 1;
ELSE SET rVal = 0;
END IF;
RETURN rVal;
END;
但是,我收到了一个错误。有什么想法吗?
答案 0 :(得分:2)
试试这个
IF(EXISTS(SELECT * FROM Users WHERE userName = pUserName))
答案 1 :(得分:1)
如何使用用户定义变量?
DELIMITER $$
CREATE FUNCTION UserExists (pUserName VARCHAR(40))
RETURNS BIT DETERMINISTIC
BEGIN
DECLARE rVal BIT;
SET @recCount := (SELECT COUNT(*) FROM Users WHERE userName = pUserName);
IF @recCount > 0 THEN
SET rVal = 1;
ELSE
SET rVal = 0;
END IF;
RETURN rVal;
END $$
DELIMITER ;
答案 2 :(得分:0)
在查询mysql数据库之前,需要使用%mysql sudo -u -p然后给出命令。