我做了以下程序,基本上从两列中的一列中转移值" not_good 和好"到列#34; 评论"在同一个表格中使用成绩值:
DELIMITER $$
CREATE OR REPLACE PROCEDURE add_comments()
BEGIN
DECLARE var INT;
SELECT grade INTO var FROM table2;
IF (var <= 7) THEN
UPDATE table2 set comment = not_good;
ELSE
UPDATE table2 set comment = good;
END IF;
END$$
DELIMITER ;
当我CALL add_comentarios();
时收到以下错误:
#1172 - Result consisted of more than one row
无法弄清楚如何让它按我的意愿运作
PS:我是一个乞丐rsrs
非常感谢您的回答!
答案 0 :(得分:0)
SELECT X INTO Y
个查询仅对单个结果查询有效;因为您的查询从整个表中进行选择,所以只有在表有一行时它才有效。无论如何,你要做的就是用一个查询来完成....
UPDATE table2
SET comment = CASE WHEN grade <= 7 THEN 'not_good' ELSE 'good' END
;
答案 1 :(得分:0)
选择子句一次获取多条记录,因此您的查询就像这样
CREATE PROCEDURE add_comment() BEGIN declare var int; SELECT grade INTO var FROM table2 limit 1; if(var <= 7) then update table2 set comment = 'not_good'; else update table2 set comment = 'good'; END IF; END$$
调用创建CALL add_comment();