【发布时间】:2011-10-22 15:59:54
【问题描述】:
我当前的代码是:
DELIMITER \\
CREATE PROCEDURE sample (IN _car VARCHAR(15))
BEGIN
DECLARE _a INTEGER;
SET @s = CONCAT('SELECT COUNT(*) FROM train WHERE ', _car, '<=0;');
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END\\
但我想将 SELECT 语句的答案捕获到我的 _a 变量中。
我尝试将我的代码更改为
SET @s = CONCAT('SELECT COUNT(*) INTO', _a,' FROM train WHERE ', _car, '<=0;');
但这没有用。
请帮忙?
解决了!
DELIMITER \\
CREATE PROCEDURE sample (IN _car VARCHAR(15))
BEGIN
DECLARE _a INTEGER;
SET @var = NULL;
SET @s = CONCAT('SELECT COUNT(*) INTO @var FROM train WHERE ', _car, '<=0;');
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
SELECT @var;
DEALLOCATE PREPARE stmt1;
END\\
:D
【问题讨论】:
-
你为什么不在存储过程中简单地写
SELECT COUNT(*) FROM train WHERE _car <=0;?
标签: mysql variables variable-assignment execute procedures