将查询结果设置为MySQL中的变量
这应该是一个简单的语法: 我试图在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
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;