简单的MySQL函数错误

时间:2013-02-02 17:07:59

标签: mysql sql

我正在尝试编写一个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;

但是,我收到了一个错误。有什么想法吗?

3 个答案:

答案 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然后给出命令。