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 に答える