0

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

但是,我得到一个错误。有任何想法吗?

4

3 回答 3

2

尝试这个

    IF(EXISTS(SELECT * FROM Users WHERE userName = pUserName))
于 2013-02-02T17:15:37.477 回答
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 ;
于 2013-02-02T17:12:09.847 回答
0

在查询你的 mysql 数据库之前,你需要使用 %mysql sudo -u -p 然后给出你的命令。

于 2013-02-03T03:20:18.413 回答