Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用户变量提供会话中最后分配的值_Mysql_Sql_Variables_Dynamic Queries - Fatal编程技术网

Mysql 用户变量提供会话中最后分配的值

Mysql 用户变量提供会话中最后分配的值,mysql,sql,variables,dynamic-queries,Mysql,Sql,Variables,Dynamic Queries,我们最近在Mysql中发现了重新声明问题。如果在循环中重复调用查询或过程,它将保留最后的值 SET @ToolType = 'test-Tool1'; SET @ToolType = (select Tool_type from IBP__Tool_type aa inner join IBP__xTool_set bb on aa.Tool_type_id=-1) ; select @ToolType; SET @ToolType = 'test-Tool1'; select @ToolTy

我们最近在Mysql中发现了重新声明问题。如果在循环中重复调用查询或过程,它将保留最后的值

SET @ToolType = 'test-Tool1';
SET @ToolType = (select Tool_type from IBP__Tool_type aa inner join IBP__xTool_set bb on aa.Tool_type_id=-1) ;
select @ToolType;

SET @ToolType = 'test-Tool1';
select @ToolType:=Tool_type from IBP__Tool_type aa inner join IBP__xTool_set bb on aa.Tool_type_id=-1;
select @ToolType; -- = OR :=

SET @ToolType = 'test-Tool2';
select Tool_type into @ToolType from IBP__Tool_type aa inner join IBP__xTool_set bb on aa.Tool_type_id=-1;
select @ToolType;
以上代码将有结果:(当表中不存在-1时,因此在所有情况下输出都应为空)

  • 空的
  • 测试工具1
  • 测试工具2

解决此问题的最佳方法是什么。

每次在查询中使用变量之前,先将变量赋值为null。用户会话问题将始终在Mysql服务器中存储变量值,并导致这些问题

SET @ToolType = null;

如果
select
没有返回任何值,它将保留该值。