我当前的代码是:
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\
但是我想捕获_a变量的SELECT语句的答案。
我试着把我的代码改成
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 ?<=0 INTO _a
然后你可以用:
EXECUTE stmt1 using _car;
并使用
获取结果select _a;