我们最近在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
解决此问题的最佳方法是什么。