autos
列を持つテーブルがあります。テーブルname
の最初の 5 行をチェックし、name
値がの場合"toyota"
、テーブルmytable
に「はい」と書き、それ以外の場合は「いいえ」と書きます。私はストアドプロシージャを書いていmysqli_error()
ますが、私が持っている行でエラーを返しますEXECUTE ...
。
ではなく、クエリを直接WHEN
記述した場合、手順は機能します。PREPARED STATEMENT
私のコードを見て、どこが間違っているのか教えてください。
CREATE PROCEDURE proc_auto()
BEGIN
DECLARE start INT;
SET start = 0;
PREPARE stmt FROM ' SELECT name FROM autos ORDER BY id LIMIT ?,1 ';
WHILE start < 5 DO
CASE
WHEN (EXECUTE stmt USING @start ) = 'toyota'
THEN INSERT INTO mytable (log) VALUES('yes');
ELSE
INSERT INTO mytable (log) VALUES('no');
END CASE;
SET start = start + 1;
END WHILE;
END;