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

MySQL将查询值赋给变量

MySQL将查询值赋给变量,mysql,Mysql,我制定了以下程序: delimiter // CREATE PROCEDURE processPayment(in id int(11), status int(11)) BEGIN declare msg_a text DEFAULT "Payment was marked as sent"; declare msg_d text DEFAULT "Payment was marked as denied and user balance was updated"; declare ms

我制定了以下程序:

delimiter // 
CREATE PROCEDURE processPayment(in id int(11), status int(11)) 
BEGIN 
declare msg_a text DEFAULT "Payment was marked as sent";
declare msg_d text DEFAULT "Payment was marked as denied and user balance was updated";
declare msg_w text DEFAULT "Wrong payment status";
declare msg_u text DEFAULT "Wrong payment ID";
declare amount varchar(255) DEFAULT 0;
amount = "SELECT amount FROM payments WHERE id = id";
user_id = "SELECT userid FROM payments WHERE id = id";

IF(SELECT COUNT(*) FROM payments WHERE id = id AND status = status) = 0
THEN
SELECT msg_u;
END IF;

IF(status = 0)
THEN
SELECT msg_w;
END IF;

IF(status = 1)
THEN
UPDATE payments SET status = status WHERE id = id;
SELECT msg_a;
END IF;

IF(status = -1)
THEN
UPDATE payments SET status = status WHERE id = id;
UPDATE balances SET actual = actual+amount WHERE user_id = user;
SELECT msg_d;
END IF;

END 
但当我尝试将其添加到数据库中时,出现错误: “=”SELECT amount FROM payments WHERE id=id”附近的语法有问题;user\u id=“从pa”第8行选择userid 我需要将查询值赋给变量。 我该怎么做?
提前感谢您的帮助。

您有两种方法可以实现此目的。首先是使用SET:

SET amount  = (SELECT amount FROM payments WHERE id = id);
SET user_id = (SELECT userid FROM payments WHERE id = id);
或使用SELECT INTO语法:

SELECT amount INTO amount FROM payments WHERE id = id;
SELECT userid INTO user_id FROM payments WHERE id = id;
您甚至可以使用第二种方法在一行中实现:

SELECT amount, userid INTO amount, user_id FROM payments WHERE id = id;