私の現在のコードは次のとおりです。MySQLストアドプロシージャのPREPAREとEXECUTE後の結果の取得方法は?
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;');
に私のコードを変更しようとしたしかし、それは動作しませんでした。
助けてください。
SOLVED!
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;'と書かなかったのですか? – Calmarius