MySQL 变量值错误(SELECT INTO)

标签 mysql sql select stored-procedures

我正在调试 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 显示为 null

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

相关文章:

java - 具有重复支持的 MySQL INSERT

mysql - 如何从mysql数据库中选择随机记录

sql - Oracle执行计划

SQL 特定顺序

c - select() 无法正常工作,错误在哪里?

MySQL WHERE IN(字符串的子字符串)?

php - 将动态数组保存到 MySQL 数据库

php - 尽管有唯一索引,但重复的记录被插入到 mysql 表中

sql - 获取特定列中具有最高值的不同值

php - 在多对多关系设置中选择