我正在MySQL中调试一个存储过程,我不知道错误在哪里。我有以下代码:

SELECT refreshToken.token FROM refreshToken WHERE refreshToken.accountId = 2;

此代码返回一个空集。但是这个密码:
SELECT refreshToken.token INTO @a FROM refreshToken WHERE refreshToken.accountId = 2;
SELECT @a;

返回表中的第一个值。

最佳答案

这是因为@a已经用一些值初始化了。
当查询返回空记录时,全局变量将保留其以前的值。
因此,在运行查询之前清除变量值总是一个好主意

set @a = null;
SELECT refreshToken.token INTO @a FROM refreshToken WHERE refreshToken.accountId = 2;
SELECT @a;

这应该显示@a为空

关于mysql - MySQL变量值错误(SELECT INTO),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31220751/

10-12 13:25