如何发现MySQL存储过程中的问题?

如何发现MySQL存储过程中的问题?,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我有以下存储过程: DELIMITER $$ CREATE DEFINER=`195414_py82740`@`%` PROCEDURE `getUserMail`(inUserId INT) BEGIN DECLARE done INT default 0; DECLARE tmpMailId INT default -1; DECLARE tmpFromUserId INT default -1; DECLARE cursor1 cursor for s

我有以下存储过程:

DELIMITER $$

CREATE DEFINER=`195414_py82740`@`%` PROCEDURE `getUserMail`(inUserId INT)
BEGIN

    DECLARE done INT default 0;
    DECLARE tmpMailId INT default -1;
    DECLARE tmpFromUserId INT default -1;

    DECLARE cursor1 cursor for select id from mail WHERE toUserId=inUserId OR fromUserId=inUserId ORDER BY sentDate desc;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    DROP TEMPORARY TABLE IF EXISTS temp_userMail;
    CREATE TEMPORARY TABLE temp_userMail LIKE mail;

    OPEN cursor1;

    REPEAT

        FETCH cursor1 INTO tmpMailId;

        SET tmpFromUserId = IF ((SELECT fromUserId FROM mail WHERE id=tmpMailId)=inUserId, (SELECT toUserId FROM mail WHERE id=tmpMailId), (SELECT fromUserId FROM mail WHERE id=tmpMailId));

        IF EXISTS(SELECT id FROM temp_userMail WHERE fromUserId=tmpFromUserId || toUserId=tmpFromUserId) THEN
            SET tmpMailId = 0;
        ELSE
            INSERT INTO temp_userMail
                (`id`,
                `fromUserId`,
                `toUserId`,
                `sentDate`,
                `readDate`,
                `message`,
                `fromUserNickName`,
                `toUserNickName`,
                `subject`,
                `fromUserDeleted`,
                `toUserDeleted`)
            SELECT
                (m1.id,
                m1.fromUserId,
                m1.toUserId,
                m1.sentDate,
                m1.readDate,
                m1.message,
                m1.fromUserNickName,
                m1.toUserNickName,
                m1.subject,
                m1.fromUserDeleted,
                m1.toUserDeleted)
            FROM mail m1
            WHERE m1.id=tmpMailId;

        END IF;

        UNTIL(done = 1)

    END REPEAT;
    CLOSE cursor1;

    SELECT * FROM temp_userMail ORDER BY sentDate DESC;

END
SP已成功保存,但在运行它时,我得到了一个神秘的异常

错误代码:1241:操作数应包含1列


我知道错误的意思,但没有第nr行,因此我不知道在哪里查找问题?

从选择子查询中删除括号

不用

 SELECT (id, ... m1.toUserDeleted) ...
使用


如果在设置之后打印tmpFromUserID,它会显示什么?我不习惯在MySQL工作台中工作,那么我该怎么做?有没有办法调试SP?抱歉,我使用Management Studio;我也不知道MySQL工作台。
 SELECT id, ... m1.toUserDeleted ...