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