【发布时间】:2012-07-07 20:21:33
【问题描述】:
我有一个表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;
【问题讨论】:
-
14 个问题,没有一个被接受的答案。我不会写答案。见how-it-works
-
你用的是什么版本的 MySQL?
-
一切都明白了,我不知道这个服务,我不偷懒说“谢谢”:)
-
距您上次发表评论已有两年时间,但仍然没有被接受的答案? :|
标签: mysql stored-procedures while-loop prepared-statement