Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables - Fatal编程技术网

将查询结果设置为MySQL中的变量

将查询结果设置为MySQL中的变量,mysql,variables,Mysql,Variables,这应该是一个简单的语法: 我试图在MySQL中设置一个等于查询结果的变量,例如: SET @variable1 = SELECT salary FROM employee_info WHERE emp_id = 12345678; 基本上,我希望将该员工的工资存储为一个变量,然后我可以对其进行操作和添加 因为我无法让它工作,所以正确的语法应该是什么 SELECT salary INTO @variable1 FROM employee_info WHERE emp_id = 12345678

这应该是一个简单的语法: 我试图在MySQL中设置一个等于查询结果的变量,例如:

SET @variable1 = SELECT salary FROM employee_info WHERE emp_id = 12345678;
基本上,我希望将该员工的工资存储为一个变量,然后我可以对其进行操作和添加

因为我无法让它工作,所以正确的语法应该是什么

SELECT salary INTO @variable1 FROM employee_info WHERE emp_id = 12345678 LIMIT 1;


您非常接近正确的语法。这是:

SET @variable1 = (SELECT salary FROM employee_info WHERE emp_id = 12345678);
然后按如下方式打印变量:

SELECT @variable1;

您甚至可以在一个查询中填充多个变量

SELECT salary, salary_group INTO @var1, @var2 FROM employee_info WHERE emp_id = 12345678;
用这个

SELECT weight INTO @x FROM p_status where tcount=['value'] LIMIT 1;
测试和工作良好

SELECT @code:=salary FROM employee_info WHERE emp_id = 12345678;
查工资,

SELECT @code;
薪资结果将在
code
中初始化


将查询结果设置为MySQL中的变量

Select  @Amount1:=  Amount FROM table where id=57703;

出于某种原因,这会返回null,知道为什么吗?当您运行
从employee_info中选择salary,其中emp_id=12345678
时,会得到什么结果?我也会返回null,我的错误是使用了与字段名相同的变量名,因此
设置salary=(选择salary FROM…
@Damith,这样做是有必要的。解决方案不是完全可以互换的:如果查询结果是一个空集,SELECT INTO variable1不会更改variable1,而set variable1=etc在这种情况下会将NULL指定给variable1。我认为应该指出这个区别,因为它可以n在许多用例中都是有意义的。请对您的查询提供一些解释,以便OP和其他用户能够理解better@sundarnataraj用户定义的变量。你可以找到解释@This not work dude。你需要让它工作。将“=”更改为“:=”虽然此代码可能有助于解决问题,但提供了额外的上下文rE根据其回答问题的原因和/或方式将显著提高其长期价值。请您的回答添加一些解释。[重复][1][1]:我使用了这里的所有内容,但它不适用于
SELECT @code;
Select  @Amount1:=  Amount FROM table where id=57703;