1
如何声明变量并设置一个值,该值是稍后对查询的返回值。MySQL将返回值分配给变量
示例存储过程:
DELIMITER $$
CREATE PROCEDURE `sampledb`.`SetVariableEx`()
BEGIN
-- declare variable
DECLARE xVarA INT;
DECLARE xVarB INT;
-- in this line, i would like to set a value on xVarA which is a COUNT
-- of record from table SINGLETABLE
-- i am getting error on this line.
SELECT xVarA := COUNT(*) FROM SingleTable;
-- the value of xVarA is added by 1 and set it to xVarB
SET xVarB = xVarA + 1;
-- insert the value of xVarB to the table SINGLETABLE
INSERT INTO SingleTable(SingleColumn) VALUES (xVarB);
-- lastly, display all records.
SELECT * FROM SingleTable;
END$$
DELIMITER ;
会怎么做呢?
AutoIncrement不是我在问题中的重点,而是将查询中的值设置为变量。 SET xVarA:= SELECT COUNT(*)FROM SingleTable;不起作用,但通过将查询放在括号内起作用。 SET xVarA:=(SELECT COUNT(*)FROM SingleTable);谢谢! – 2012-01-09 13:53:23
@ 491243不知何故错过了这个,而是迟到了,以更新我的答案。谢谢。 – 2013-09-20 17:19:09